MATLAB中的嵌套循环

时间:2011-02-01 06:34:09

标签: matlab

loop1 start

loop2 start

loop3 start

X

结束loop3

结束循环2

结束循环1

我可以存储X的值,以便在执行所有循环后可以看到所有值吗?刚提到X就是文本字符串。

更新:它正在工作,。我得到的输出如下:

       {790x1 cell}
          []
          []
          []
          []
          []
          []
          []
          []
          []

我想,我的所有字符串都保存在{790x1单元格}中。有什么方法可以看到它们吗?代码:

X_record=cell(10000,1);
c=1;
for k=1:200
    for i=1:300
        for it=1:200
           X='NY is crowded';
           X_record{c}=X;
           c=c+1;
        end
    end
end

修改:2

clear all
clc

X_record=cell(10,1);
c=1;

for k=1:2
    for i=1:3
        for it=1:2
           X='NY is crowded';

           f_id=fopen('c.txt','a+');
           fprintf(f_id,'%5s\n',X) ;%#ok<CTPCT,CTPCT>
           fclose(f_id)

           X_record{c}=X;
           c=c+1;
        end
    end
end

输出:

纽约很拥挤     纽约拥挤纽约拥挤纽约拥挤纽约拥挤纽约拥挤.....

为什么我没有获得任何新行?

3 个答案:

答案 0 :(得分:4)

使用cell array

X_record = cell(M*N*P,1);

c = 1;
for i = 1:M
    for j = 1:N
        for k = 1:N
            X = whatever;
            X_record{c} = X;
            c = c + 1;
        end
    end
end

答案 1 :(得分:1)

要回答您关于为什么您没有在新行上看到每个NY is crowded的第二个问题,我猜您可能正在使用Microsoft记事本查看您的文件c.txt。以下是函数"Examples"文档的FPRINTF部分的摘录:

  

MATLAB导入函数,全部是UNIX   应用程序,以及Microsoft Word和   写字板将'\n'识别为换行符   指示符。但是,如果你打算   用Microsoft Notepad读取文件,   使用'\r\n'时移动到新行   写入。

所以,你应该尝试打印输出:

fprintf(f_id,'%5s\r\n',X);

答案 2 :(得分:0)

我不确切知道为什么

       X='NY is crowded';
       fprintf(f_id,'%5s\n',X)

..不起作用,但我建议你试试

       X='NY is crowded\n';
       fprintf(f_id,'%5s',X)

...代替