我试图弄清楚如何在一个循环中保存多个图像。
$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
我无法使它工作, 谢谢你的帮助
答案 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