Matlab - 图形用户界面(GUI),带有arduino数据的图

时间:2013-04-25 11:55:23

标签: matlab user-interface plot arduino

我有一个Matlab程序完成了一个实时绘图,从一个使用arduino的LDR传感器获取数据。 现在我想在GUI中实现该程序,我正面临一些绘图问题。这是我的程序的一部分,我不知道如何在GUI模式下绘图。

  

(...)   虽然(1)   state = a.analogRead(0);   (......)   轴紧   的DrawNow;   x = [x,state];   积(X, ' - * B');   网格;   端

代码必须在OpeningFcn中吗?我应该把它复制到那里吗?我需要在绘图代码中更改什么?非常感谢你!

1 个答案:

答案 0 :(得分:0)

while中的无休止OpeningFcn循环将无限期地锁定您的GUI。您最好创建一个计时器对象并在其回调中运行“连续”绘图代码;一个例子:

function myui_OpeningFcn(hObject, eventdata, handles, varargin)

    % Create timer with delay of 0.1 seconds
    handles.tmrPlot = timer( ...
        'ExecutionMode', 'FixedRate', ...
        'Period', 0.1, ...
        'TimerFcn', @myPlottingFunction);

    % Store in ui data
    guidata(hObject, handles);

    % Start it!
    start(handles.tmrPlot);
end

function myPlottingFunction(src, evt)
    % Do some plotting
    plot(rand(10));

    drawnow;
end

使用计时器,您还可以在按钮的回调中启动和停止执行。