如何在 matlab 的 for 循环中制作不同名称的电影

How to make differently named movies in a for-loop in matlab

假设我有一个 for 循环。

count=1;
for t=1:20

    while(true)
        figure();
       (do sth...)
       view([-90 -90])
       pause(0.01)
       M(count)=getframe;
       count=count+1;
     end

movie2avi(M, 're.avi');
end

在 for 循环中有一个 while 循环,我正在制作我的电影。但是在 for 循环的每次迭代中都会制作一部电影。我想将每部电影的名称存储为 re1、re2、...re20 等。怎么修改命令movie2avi(M, 're.avi');去做呢?

使用 num2str 将索引 t 转换为字符串并连接:

movie2avi(M, ['re',num2str(t),'.avi']);

这将生成 re1.avi,re2.avi,...,re20.avi.


为了更好地对文件进行排序,您可能还想在文件名中添加前导 0

movie2avi(M, ['re',num2str(t,'%02G'),'.avi']);

这将生成 re01.avire02.avi、...、re20.avi。额外的参数 '%02G' 是一个 formatspec ,它创建一个看起来像整数的字符串,其长度至少为 2,并用零填充长度为 1 的数字。