MATLAB App Designer:将输出从一个按钮传递到另一个按钮

时间:2017-08-01 18:22:28

标签: matlab matlab-gui matlab-app-designer

我正在使用App Designer开发MATLAB GUI,不过我的问题可能类似于指南。 我想要做的是将一个回调(按钮)的输出传递给另一个回调。原因是时间有效;我希望用户能够首先加载文件,然后选择要绘制的数据列。

我已经尝试建立全局变量,但这似乎不起作用。

我的项目的目标是加载包含数十个“列”数据的XML文件,其中包含数百个“行”测量值(例如:温度和湿度随时间变化)。我的想法是用户将按下一个按钮来加载数据,然后选择要显示的所需列。

methods (Access = private)

    % Button pushed function: SelectNewFileButton
    function SelectNewFileButtonPushed(app, event)
        [filename, filepath] = uigetfile('..\*.*');
        app.FileNameEditField.Value=filename;
        app.FilePathEditField_2.Value=filepath;
    end

    % Button pushed function: LoadDataButton
    function LoadDataButtonPushed(app, event)
        % Loads XML data...
        global xHead;
        % EM_witsfun1 is a function which takes a file name & directory as an input, and returns the header and data
        [xHead, xData, toc1]=EM_witsfun1(app.FileNameEditField.Value,app.FilePathEditField_2.Value);
        app.DataLoadedinsEditField.Value=toc1; % Shows elapsed time after running the above function (just to make sure it works)
    end

    % Button pushed function: UpdateButton
    function UpdateButtonPushed(app, event)
        app.ChosenChannelNameEditField.Value=xHead{app.ChooseChannelNumberEditField.Value};
    end
end

错误是:

  

未定义的函数或变量xHead

也许在函数外部定义了一些我可以在函数内更新的东西(就像我用文本框一样),但我不确定最优雅的方法是什么。

GUI显示图像:

Image of GUI display

1 个答案:

答案 0 :(得分:0)

我根据Mathworks使用公共属性解决了我的问题。