从函数返回的句柄中绘制图形



是否可以让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

最新更新