2017-03-15 306 views
0

我想创建一个数组,每次执行循环时都可以存储输出。我认为这个问题是因为在每一次新的迭代中,数字从头开始计数,所以它只存储最后一次迭代!在每次迭代中,输出是array(7x3),所以总共我必须有(28,3)。但是我尝试了很多,并且除了最后7行之外,我都得到了一个全部为零的ARRAY (28,3)。 非常感谢您Matlab,将输出保存在数组中,循环

你可以看到下面的代码:

for t=1:ncell % in my case I have 4 cells 
    ti=sort(T,2)    
    tt= sort(Cell{t}.ExBot,2) 
    tq= sort(Cell{t}.ExTop,2) 
    te= sort(Cell{t}.ExBT,2) 
    %k=0 
    z=0 
    cc=[] 
    %%%%% for exbottom 
    I=ones(size(ti,1),1); 
    for j=1:size(tt,1) 
     for i=1:size(ti,1) 
      if tt(j,:)==ti(i,:) 
       k=k+1 ; 
       %c(k,:)=[ti(j,:), ti(j+1,:)] 
       I(i)=0; 

       cc(k,:)=Y(i,:); 
       cc(size(tt,1)+1,:)=cc(1,:) 




      else 
      end 

     end 


    end 

end 
+0

什么是'k'的在循环结束时的价值? – Rotem

+2

如果您想获得可验证的答案,请发布缺少的变量,如“T”和“Cell”。确保你发布的代码是可执行的。 – Rotem

+0

调试代码,在“if ..” –

回答

0

尽管在评论中提到,从你提供的信息,更多信息会有所帮助,问题很可能出在设置CC在开始处理每个单元格时清空。

cc=[]; 

在退出最外层循环时,您只会得到最后一次迭代的结果。

相关提示您可能需要使用isequalall为载体的比较,即if isequal(tt(j,:),ti(i,:))