2017-03-15 2 views
0

Je veux créer un tableau qui peut stocker les sorties chaque fois que faire une boucle. Je pense que le problème est que, dans chaque nouvelle itération, les nombres commencent à compter depuis le début, donc ils ne stockent que la dernière itération! Dans chaque itération la sortie est un array(7x3) donc au total je dois avoir (28,3). Mais j'ai essayé beaucoup et je prends un ARRAY (28,3) tous avec des zéros sauf les 7 dernières lignes. Merci beaucoupMatlab, enregistrer la sortie dans le tableau, boucle

Vous pouvez voir le code ci-dessous:

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

Quelle est la valeur de 'K' à la fin de la boucle? – Rotem

+2

Dans le cas où vous aimeriez obtenir une réponse vérifiable, veuillez poster des variables manquantes comme 'T' et' Cell'. Assurez-vous que le code que vous publiez est exécutable. – Rotem

+0

Déboguer le code, en ajoutant un point d'arrêt au "si .." –

Répondre

0

Bien que plus d'information aiderait comme mentionné dans les commentaires, à partir des informations que vous avez donné, le problème est le plus probable dans la mise cc vider lorsque vous commencez à traiter chaque cellule.

cc=[]; 

En quittant la boucle la plus externe, vous n'aurez que des résultats pour la dernière itération.

Sur une note connexe, vous voudrez peut-être utiliser isequal ou all pour la comparaison des vecteurs à savoir if isequal(tt(j,:),ti(i,:))