IN MATLAB:如何为每次重复保存在循环内创建的图形?

时间:2014-01-18 14:21:13

标签: matlab loops graph save

有没有人知道如何保存下面的循环为每次重复创建的图形?我想以pdf格式保存它。 我尝试输入:saveas(gcf,{['figure',num2str(i),'.pdf']}) 但它不起作用。

这是我的循环:

i=1;

while i<=4

    x=0:pi/100:2*pi;
    y=sin(x)+i;

    figure
    plot(x,y)

    i=i+1;

    saveas(gcf,'figure.pdf')
end

2 个答案:

答案 0 :(得分:2)

您需要使用strcat()命令来构造文件名:

I = 1;
figure
while I <= 4
    x=0:pi/100:2*pi;
    y=sin(x) + I;
    plot(x,y);
    saveas(gcf,strcat('figure',num2str(I),'.pdf'));
    I = I+1;
end

我已经更改了代码以重复使用相同的数字来渲染绘图并将i更改为大写以避免与内置的Matlab虚构单位表示混淆。此代码将文件保存在当前工作目录中,并且在覆盖之前不会检查。

答案 1 :(得分:2)

这就像一个魅力:

for ii = 1:4
    x = 0:pi/100:2*pi;
    y = sin(x)+ii;

    figure
    plot(x,y)
    saveas(gcf,['figure' num2str(ii) '.pdf'])
end

你的问题是使用大括号{}。它们用于创建(和索引)单元格数组。此外,strcat不是必需的。您可以简单地将所有内容放在方括号内,就像我上面所做的那样。在这种情况下,我会说forwhile更适合。