0

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

(...) While(1) state = a.analogRead(0); (...) 轴紧拉丝;x = [x,状态];情节(x,'-*b');网格开启;结尾

代码必须在OpeningFcn中?我应该只是复制粘贴到那里吗?我必须在绘图代码中更改什么?非常感谢你!

4

1 回答 1

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

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

于 2013-04-25T14:25:37.373 回答