我正在使用App Designer在MATLAB GUI上工作,雖然也許我的問題類似於指南。 我想要做的是將一個回調(按鈕)的輸出傳遞給另一個。原因是隨時間有效;我希望用戶能夠首先加載文件,然後選擇要繪製的數據列。MATLAB App Designer:將輸出從一個按鈕傳遞到另一個按鈕
我已經嘗試建立全局變量,但似乎沒有工作。
我的項目的目標是加載包含幾十個「列」數據和幾百行「測量」(例如:溫度和溼度隨時間變化)的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顯示:
我相信我解決了我的問題:我不是試圖建立新的全局變量,而是更新了現有GUI對象的元素。例如,通過將單元格數組的元素傳遞到列表框中: app.ListBox1.Items = {'newString1','newString2'}; 因此,整個應用程序都可以訪問ListBox的新元素。我打算用數據做同樣的事情,但我不確定如何在不顯示錶中的所有數據的情況下執行此操作(耗時)。 –