我的matlab工作空间中有8x1单元矩阵,称为textdata。它包含每行中的代码。我如何使用按钮和edit1_Callbacks
来编程这个基本的数据点检索操作(代码是什么以及我在哪里输入它?没有花哨的东西,只想知道如何将textdata导入gui和推动一个buttun将第一个自动收录器检索到编辑文本框(第一行textdata中的1个数据点)?
答案 0 :(得分:0)
您可以使用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的常用方法。