循环保存图像

发布于 2024-12-18 19:42:43 字数 258 浏览 0 评论 0原文

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


$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

我无法让它工作, 感谢您的帮助

Im trying to figure out how to save multiple images in a 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

i cant make it working,
thanks for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丿*梦醉红颜 2024-12-25 19:42:43
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
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
喜爱皱眉﹌ 2024-12-25 19:42:43

如果“保存”是指将其保存到 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

If by "Save" you mean saving it into a jpeg file, then the following code does it:

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

but in general your approach is not the best way of writing code in Matlab. You can use Cells for example:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文