是否可以让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是任意输入向量。
我意识到我可以放置一个输入变量,该变量表示要从函数返回的数字,但我希望能够让用户从列出的输出中选择他们想要的数字。然后,如果有必要,他们可以看另一个数字。我希望能够做这样的事情:
得到(fh1 show_me_the_figure)
,这将显示第一个图,从函数返回的句柄。这可能吗?
您可以选择使用figure(handle)
显示哪个图,如果句柄之前与另一个figure()
调用一起创建。
不生成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