我在MATLAB工作区中有一个变量,我想把这个变量传递给我的GUI中的一个函数。
我如何完成这项任务?
答案 0 :(得分:5)
您可以使用GUI中的函数EVALIN从基础工作区获取变量的值。以下示例提取基础工作空间中变量A
的值,并将该值放在局部变量B
中:
B = evalin('base','A');
例如,您可以在GUI中有一个可编辑的文本框,允许用户输入要从基础工作区导入的变量的名称。然后,您的一个GUI函数可以从可编辑文本框中读取字符串,并尝试从基础工作区获取该变量以用于某些计算:
varName = get(hEditText,'String'); %# Get the string value from the uicontrol
%# object with handle hEditText
try %# Make an attempt to...
varValue = evalin('base',varName); %# get the value from the base workspace
catch exception %# Catch the exception if the above fails
error(['Variable ''' varName ... %# Throw an error
''' doesn''t exist in workspace.']);
end
答案 1 :(得分:1)
您可以使用SETAPPDATA(在主工作区中)和GETAPPDATA(在GUI中)函数。如果变量是someMatrix
setappdata(0,'someMatrix',someMatrix) % in the main workspace
someMatrix = getappdata(0,'someMatrix') % in GUI