我有一个很大的Matlab代码,现在我正在尝试将它连接到GUI。我创建了一个函数
function z = interface_master(handles)
首先从GUI文本编辑框中获取初始参数,然后使用这些参数运行多个.m文件,例如
n = get(handles.n_value,'String');
n = str2num(n);
assign('base','n',n)
run('code_1')
run('code_2')
...
在这些“代码”中,我创建并保存了许多数字。我现在希望用户能够在GUI中显示他选择的数字。假设我有3个不同的按钮(Push1,Push2,Push3),用户按下Push1后会显示Figure_A。然后按下Push2后,他将得到Figure_B替换Figure_A,依此类推。我可以以某种方式让它在我的函数interface_master
中设置句柄吗?
我不想过度拥护我的interface.m
文件,到目前为止,我设法在这个额外的interface_master
文件中执行其他所有操作(读取值,显示消息),只需通过{{ 1}}在接口回调函数中。但现在我被这些按钮困住了。
我真的很感激这里的一些帮助。我之前从未做过任何GUI。
答案 0 :(得分:0)
我已经创建了一个非常简化的版本。通常,code_1和code_2要大得多,界面将显示更多消息,而code_1和code_2可以保存大约20个不同的数字。但是我正在努力解决的问题可以通过简单的代码计算多项式来证明。
%% code_1.m
x = linspace(-1,1) ;
y = x.^n ;
%% code_2.m
f = figure('visible','off');
plot(x,y);
set(f,'Visible','on')
saveas(f,'power_plot_1','fig')
delete(f)
g = figure('visible','off');
plot(x,x.^(n+1));
set(f,'Visible','on')
saveas(g,'power_plot_2','fig')
delete(g)
%%% master.m
function z = master(handles)
n = get(handles.n_value,'String')
n = str2num(n) ;
assignin('base','n',n)
if (n < 1)
message = ('small n') ;
elseif (n>10)
message = ('large n') ;
else
message=('hello world') ;
run('code_1')
run('code_2')
end
set(handles.text1,'String',message)
这是界面: