【问题标题】:How to read structure variable from workspace to Gui in matlab?如何在matlab中从工作区读取结构变量到Gui?
【发布时间】:2012-05-31 15:19:27
【问题描述】:

我试图从工作区获取一个结构变量到 gui 编辑文本框,经过多次试验我成功地做到了,但在显示变量时遇到了另一个问题。

在将我的字符串应用到文本框后,我收到此警告。'单行编辑控件不能有多行文本'所以我将编辑框属性最大步长更改为 2,以便我可以避免这个错误。

我的意图是在模拟正在进行时显示变量值,但我无法做到。模拟完成后,当且仅当我在一段时间后单击编辑框时,我才会显示值,但这也像向下滚动显示。

function edit3_Callback(hObject, eventdata, handles)
% hObject    handle to edit3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

simout=evalin('base','simout');
L = length(simout);
vars = cell(1,L);
[vars{1:L}] = simout.signals.values;
set(handles.edit3,'string',vars);
guidata(hObject,handles);

请大家尽快帮我解决这个问题。

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    如果您希望您的编辑框在模拟过程中显示值,您必须调用

    set(handles.edit3,'string',currentValue);
    

    在模拟期间(其中 currentValue 是您要显示的值)。

    模拟完成后当且仅当我点击编辑 一段时间后,我得到了显示的值,但这也是 就像向下滚动显示一样。

    您只有在单击后才能看到该值,因为该代码位于“回调”函数中,当您与编辑框交互时会调用该函数。 如果您想在模拟结束时立即显示该值,请让您的模拟在完成时执行 set 命令以更新编辑框。

    【讨论】:

      【解决方案2】:

      您可能会遇到问题,即 Matlab 进程在运行时不会更新屏幕。

      更新后可能需要包含drawnow。但这只有在窗口位于前台时才有帮助。

      就我个人而言,我总是将内容写入日志文件并在 matlab 之外显示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-29
        • 2020-10-10
        • 1970-01-01
        • 1970-01-01
        • 2011-02-15
        • 1970-01-01
        • 2015-10-21
        • 1970-01-01
        相关资源
        最近更新 更多