如何在MATLAB中通过对话框打开所需的图形

时间:2017-12-05 14:04:20

标签: matlab

有没有办法从MATLAB中的大量绘图中打开所需的数字?

如果可以使用对话框,那么它将是完美的。

我喜欢在我的代码之后绘制了75个数字,但我已经在循环结束时关闭了数字,因为它们太多了。

是否可以通过在程序结束时输入在MATLAB中绘制图形所需的值来打开一个图形?

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法如下: 1)使用.fig命令将数字saveas保存在专用文件夹中,例如:

saveas(gcf,['FileName_',num2str(idx),'.fig']);

其中idx是与图号相关联的索引(因此在您提到的示例中为75)。为简单起见,我会将所有这些文件保存在一个文件夹中。

2)使用inputdlg创建输入对话框,在其中键入所需的索引。然后,运行uiopen(['FileName_',idxFromInput,'.fig']),将显示该图。请注意,inputdlg的输出通常是一个字符串,因此您在这里不需要num2str

答案 1 :(得分:1)

  

来自Wikibooks: MATLAB Programming/Handle Graphics(强调我的):

     

每次关闭数字,无论是使用关闭功能还是点击' X',,您都无法再访问数据 ,和   尝试这样做会导致错误。关闭一个数字也   销毁所有依赖的轴和注释的句柄   它

这意味着一旦你关闭你的75个数字,他们就会永远消失。

我建议将所有数据保存为.fig文件格式,因为这样您以后可以在MATLAB中打开它们。

采用以下示例:

x = linspace(0, 2*pi);  % Sample data.

for i = 1:3                             % Loop 3 times.
   h = figure;                          % Create figure window and capture its handle.
   plot(i*sin(x));                      % Plot some data.
   saveas(h, sprintf('fig%d.fig', i));  % Save figure to .fig file format.
   close(h);                            % Delete the figure.
end

现在您可以告诉MATLAB使用openfig函数打开其中一个数字。例如,让我们打开第二个数字fig2.fig。转到命令窗口并键入openfig('fig2')(包括文件名中的.fig扩展名是可选的。)

>> openfig('fig2')

ans = 

  Figure (1) with properties:

      Number: 1
        Name: ''
       Color: [0.9400 0.9400 0.9400]
    Position: [520 371 560 420]
       Units: 'pixels'

  Show all properties

the second figure