Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 计数器不更新_Matlab_Matlab Guide_Handles - Fatal编程技术网

Matlab 计数器不更新

Matlab 计数器不更新,matlab,matlab-guide,handles,Matlab,Matlab Guide,Handles,这对我来说是第一次。我已经开始使用指南,在轻微的咒骂之后,我已经跌到了谷底。我在m文件中设置了一个计数器,但由于某些原因,它不会更新。你能帮帮我吗。计数器名为num function ack = streamSensor_1_2_3(hObject, handles) if handles.fileID.BytesAvailable == 0 fprintf(handles.fileID, 'P') display('yes'); %get data from active

这对我来说是第一次。我已经开始使用指南,在轻微的咒骂之后,我已经跌到了谷底。我在m文件中设置了一个计数器,但由于某些原因,它不会更新。你能帮帮我吗。计数器名为num

function ack = streamSensor_1_2_3(hObject, handles)

if handles.fileID.BytesAvailable == 0
    fprintf(handles.fileID, 'P')
    display('yes');

%get data from active receiver stations
for l = 1:3
    data_cm(l,:) = fscanf(handles.fileID, ' %f ' );
    display(data_cm);
    set(handles.uitable1, 'data', data_cm);
end

%solve perpendicular view
[at, bt, ct] = flatPlane(data_cm(:,2), data_cm(:,3), data_cm(:,4))
[xr, yr] = reposit(at, bt, ct);
D_angle = dangle(data_cm(:,2), data_cm(:,3), data_cm(:,4), 'deg');

display(handles.num);

comet(handles.axes3, handles.num, D_angle);
handles.num = handles.num +1 ;

%plot knee angle 
    plot3(handles.axes1, data_cm(:,2), data_cm(:,3), data_cm(:,4));
    plot(handles.axes2, xr, yr);
    ylim(handles.axes2,[-1.2 1.2]);
    xlim(handles.axes2,[-1.2 1.2]);
    ack = 1;
else
    ack = 0;
end
guidata(hObject, handles);
我已经在开始函数中声明了这个变量

function Knee_DepressAngle_GUI_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for Knee_DepressAngle_GUI
handles.output = hObject;
handles.num = 0;
% Update handles structure
guidata(hObject, handles);
...........etc.
这个函数是通过按下按钮来调用的。这将是一个连续调用的函数,因此基于按钮按下信息的计数器将不起作用

function printOnce_Callback(hObject, eventdata, handles)

display(streamSensor_1_2_3(hObject, handles));

guidata(hObject, handles);

在按钮的回调函数中,不要调用
guidata(hObject,handles)操作,除非
streamSensor_1_2_3()
函数返回更新的
句柄。因此,只需删除函数
printOnce\u Callback(hObject、eventdata、handles)

中的最后一行,在递增计数器的那一行放一个断点,检查值了吗?非常感谢,它能工作!我有一个彗星图不更新的问题。我假设每次调用函数时都会新绘制绘图。我想知道如何实现comet绘图,以便在读取数据时绘制数据。高级谢谢。我真的不明白你的意思,你可以用一些描述你的问题的示例代码提出一个新问题,ppl会帮助你:-)谢谢scmg的帮助。我通过使用plot和提取数据,然后添加新读取的数据来制作一个实时图形,使其工作。你们真是太棒了。现在开始制作有史以来最好的GUI。