如何从matlab工作区检索数据点到编辑文本到gui?

时间:2011-11-28 18:57:39

标签: matlab user-interface text edit

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

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的常用方法。