在一个循环中保存图像

时间:2011-12-01 18:36:53

标签: image matlab cycle

我试图弄清楚如何在一个循环中保存多个图像。


$piece1=[1,1,1;1,1,1;1,1,1];
$piece2=[0,1,0;1,1,1;1,0,1];
$piece3=[0,0,0;0,0,0;0,0,0];

$N=3;

$for i=1:N
$    (('piece' num2str(N)),('piece' num2str(N)),'jpeg');
$end

我无法使它工作, 谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

piece1 = [1,1,1;1,1,1;1,1,1];
piece2 = [0,1,0;1,1,1;1,0,1];
piece3 = [0,0,0;0,0,0;0,0,0];

N=3;

for i=1:N
    imwrite(eval(['piece' num2str(i)]),['piece' num2str(i) '.jpeg']);
end

答案 1 :(得分:0)

如果通过“保存”表示将其保存到jpeg文件中,则以下代码执行此操作:

piece1=[1,1,1;1,1,1;1,1,1];
piece2=[0,1,0;1,1,1;1,0,1];
piece3=[0,0,0;0,0,0;0,0,0];

N = 3

for i=1:N
    piece = eval(sprintf('piece%d', i));
    file_name = sprintf('piece%d.jpg', i);
    imwrite(piece, file_name);
end

但一般来说,您的方法不是在Matlab中编写代码的最佳方法。例如,您可以使用单元格:

piece{1}=[1,1,1;1,1,1;1,1,1];
piece{2}=[0,1,0;1,1,1;1,0,1];
piece{3}=[0,0,0;0,0,0;0,0,0];

for i=1:numel(piece)
    file_name = sprintf('piece%d.jpg', i);
    imwrite(piece{i}, file_name);
end