Bonjour,
J aimerais comparer toutes les lignes au sein d une meme matrice, et si plusieurs lignes sont identiques, j aimerais recuperer le numero de la premiere ligne. Mon idee etait de prendre chaque ligne de la matrice et de voir si elle appartient a la matrice sans cette ligne. Voici les matrices A et B identiques :et mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 A et B = 1 1 1 1 1 1 1 1 1 2 1 3 1 1 1 1 3 1 1 2 1 3 1 1 1 1 3 1 1 2Resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 d=length(B); for i=1:d-1 % On prend chaque ligne de B Ligne=B(i,:); % On reduit la dimension de la matrice A(1,:)=[]; % On compare la ligne a la nouvelle matrice, si oui on prend l indice if (ismember(Ligne,A,'rows')) result(i)=i; end end % resultat vertical resultat1 = result'; % resultat sans 0 result2 = resultat1(logical(resultat1));Cela fonctionne. Toutefois mon probleme est le temps d execution pour des matrices de grandes dimensions. Y a t il un moyen d ameliorer ce code ou meme supprimer la boucle ? merci bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 t = 3 4
Partager