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
c'est à partir de là que je suis plutôt perdu.
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}
-> 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 ?).
Code : Sélectionner tout - Visualiser dans une fenêtre à part for row = 2:size(A,1)
-> De deux, je voudrais créer un nouveau tableau avec les lignes identiques. J'ai donc fait :
mais il semble que cela ne marche pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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"
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] "
Si quelqu'un a des conseils pour me faire avancer dans ce truc...
merci d'avance !
Dan







Répondre avec citation







Partager