[英]Can't access handles from a function
我正在嘗試使用GUIDE創建GUI,GUIDE通過串行通信讀取字符串。 之后,它將切出所需的數字並將其顯示在屏幕上。 我創建了此函數,每次在COM端口的緩沖區中有一行數據時都將執行該函數:
function out = intcon1(hObject, eventdata, handles)
global comPort;
a=fgetl(comPort);
disp(a);
a(a==' ') = '';
indexstart=strfind(a,'[');
indexend=strfind(a,']');
measureddata=a(indexstart(1):indexend(1));
commas=strfind(measureddata,',');
re1data=measureddata(2:(commas(1)-1));
re2data=measureddata((commas(1)+1):(commas(2)-1));
im1data=measureddata((commas(2)+1):(commas(3)-1));
im2data=measureddata((commas(3)+1):(commas(4)-1));
temp1data=measureddata((commas(4)+1):(commas(5)-1));
temp2data=measureddata((commas(5)+1):(commas(6)-1));
old_str=get(handle.re1, 'String');
new_str=strvcat(old_str, re1data);
set(handles.listbox8, 'String', re1data);
現在,我正在嘗試將數據放入列表框。 這只是第一個值。 Matlab一直在說,問題是未定義句柄。 但是我已經使用以下代碼創建了一個用於清除列表框的按鈕:
function clearlists_Callback(hObject, eventdata, handles)
% hObject handle to clearlists (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.listbox8, 'String', '');
有誰知道這個問題是什么以及如何解決?
您可能使用不帶其他參數的函數句柄語法定義了BytesAvailableFCN,像這樣
s.BytesAvailableFCN = @myfun();
相反,您需要使用單元格數組來定義回調,如文檔中此處所述 。 例如,
s.BytesAvailableFCN = {'myFun', handles};
運行該行時,必須已經在您的工作空間中定義了handles
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.