Bonjour à tous,
j'ai un tableau m*n comportant pour chaque case soit un 0 soit un 1.
J'aimerai comparé le profil de mes lignes entre elles, et lorsque certaines lignes ont le même profil, les extraire de mon tableau (en les mettant dans un autre tableau, ainsi j'aurai autant de "sous-tableau" que de profils différents).

Je me suis dit qu'il faudrait prendre la première ligne, la comparer avec les autres, l'extraire elle et ses petites copines, et recommencer l'opération (avec la seconde ligne qui sera passé du coup en tête de tableau) jusqu'à ce que mon tableau initiale soit vide. (s'il y a d'autres "plan" à suivre, je suis aussi preneur )

Soit A mon tableau :
Soit C et row mon nombre de ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
%Pour comparer le profil :
for C = 1:size(A,1)
      Cligne{C} = A(C,:);
   	C_ref{C} = Cligne{C}
   	for row = 2:size(A,1)
   	   Rligne{row} = A(row,:);
   	   corrsp{row} = comp_ref{C} & Rligne{row}
c'est à partir de là que je suis plutôt perdu.

-> De un ma première comparaison/correspondance me donne [], puisque je pars sur
(en effet je ne vais pas comparer ma première ligne avec ma première ligne. Ou alors je supprime cette comparaison par la suite ?).

-> De deux, je voudrais créer un nouveau tableau avec les lignes identiques. J'ai donc fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Nmatrice.reseau{C} = [comp_ref{C},comp_compare]
mais il semble que cela ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
" ??? Conversion to cell from double is not possible.
 
Error in ==> C:\MATLABR11\toolbox\SPM99\danasupprm.m
On line 19  ==>       Nmatrice.reseau{C} = [comp_ref{C},comp_compare] "
-> De 3, je ne sais pas comment supprimer les lignes "à profil identiques" sans que ca fasse planter le bazar : une fois certaines lignes extraites, ma size(A,2) n'est plus la même. Il faudrait une sorte de mise à jour avant le premier "for"

Si quelqu'un a des conseils pour me faire avancer dans ce truc...
merci d'avance !
Dan