Matlab 从函数返回的句柄打印图形
是否可以让matlab从一个函数返回多个图形的句柄,然后用户可以指定要显示的图形。例如:Matlab 从函数返回的句柄打印图形,matlab,matlab-figure,Matlab,Matlab Figure,是否可以让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是任何输入向量 我意识到我可以放置一个输入变量,说明从函数返回哪个图形,但我希
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,“向我展示图形”)
这将显示第一个图,来自函数返回的句柄。这可能吗 与其生成3个图形,不如根据选择绘制指定的图形?因为
handle=数字(数字)代码>将始终生成新窗口,或覆盖现有窗口。
在gui中,您可以在选择回调中使用开关,它使用开关中的选定选项(下面是简单的函数示例)
如果句柄是以前使用另一个figure()
调用创建的,则可以使用figure(handle)
选择要显示的图形。figure(fh2)
是否执行此任务?记住,在任何情况下,如果图形关闭,手柄将失效!我想安德是对的……是的,对。我已使函数中的数字不可见(可见=关闭),因此您的建议非常有效。@Emmatebs很乐意提供帮助!如果你的问题已经解决了,请考虑接受其中的一个答案!是的,这是我最初看到的,但是如果我想看到第二个图形,我需要重新运行函数。在我的情况下,这是不可取的,因为该函数需要一些时间来运行。那么使用assignin或save来保存结果,并使用单独的函数来绘制所选的图形如何?
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