有没有办法从MATLAB中的大量绘图中打开所需的数字?
如果可以使用对话框,那么它将是完美的。
我喜欢在我的代码之后绘制了75个数字,但我已经在循环结束时关闭了数字,因为它们太多了。
是否可以通过在程序结束时输入在MATLAB中绘制图形所需的值来打开一个图形?
答案 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