是否可以让matlab从函数返回多个数字的句柄,然后用户可以指定要显示的数字。例如:
function [fha, fh2, fh3] = my_funct(x,y)
fh1 = figure(1);
plot(x,y);
fh2 = figure(2);
plot(x,y*3);
fh3 = figure(3);
plot(x,y*7);
end
其中x和y是任何输入向量。
我意识到我可以放置一个输入变量来说明从函数返回哪个数字,但我希望能够让用户从列出的输出中选择他们想要的数字。然后,如有必要,他们可以看看另一个人物。我希望能够做到这样的事情:
get(fh1,' show_me_the_figure')
这将显示第一个数字,来自函数返回的句柄。这可能吗?
答案 0 :(得分:2)
如果之前使用其他figure(handle)
来电创建了句柄,您可以选择使用figure()
显示哪个数字。
答案 1 :(得分:0)
如何根据选择绘制指定的数字,而不是生成3个数字?由于handle=figure(number);
将始终生成新窗口,或覆盖现有窗口。
在gui中,您可以在选择回调中使用一个开关,它使用开关中的选定选项(简单的功能示例如下)。
function [fh] = my_funct(x,y,chosen)
switch chosen
case 1
fh = figure(1);
plot(x,y);
case 2
fh = figure(1);
plot(x,y*3);
case 3
fh = figure(1);
plot(x,y*7);
otherwise
fh = figure(1);
disp('No Valid Choice')
end