可以使用MATLAB函數evalin
從您的GUI檢索工作空間的變量。
下面的例子GUI說明了這一點,你可以從這個起點擴大:
% GUI
function so_wsgui
figure('units','normalized',...
'position',[0.15 0.15 0.7 0.7],...
'color',[1 1 1]*0.5,...
'numbertitle','off',...
'menubar','none',...
'toolbar','none',...
'tag','figure');
data=guihandles(gcf);
uicontrol('parent',data.figure,...
'style','pushbutton',...
'string','Import',...
'units','normalized',...
'position',[0.1 0.85 0.8 0.05],...
'callback',@import_callback);
uicontrol('parent',data.figure,...
'style','edit',...
'horizontalalignment','center',...
'backgroundcolor',[1 1 1],...
'units','normalized',...
'position',[0.1 0.5 0.8 0.05],...
'tag','text');
data=guihandles(gcf);
guidata(gcf,data);
end
% Callbacks
function import_callback(obj,event) %#ok
data=guidata(gcbf);
try
wsvar=evalin('base','textdata');
set(data.text,'string',wsvar{1});
catch exception
set(data.text,'string',['Error: ' exception.identifier]);
end
end
但是你必須小心,因爲沒有什麼保證你的變量存在,或者它是一個單元格數組,所以你必須謹慎。這不是通常的將數據傳遞給GUI的方式。
你應該開始接受給定的答案,以獲得新的。 – zellus
好的謝謝你的提示......不知道。你能幫助我解決這個基本問題嗎? –
到目前爲止你做了什麼?嘗試發佈一個最小的原型來展示你的問題。 – zellus