Bonjour,
J'ai un soucis sur lequel je bute depuis plusieurs jours sous MATLAB. J'ai vu qu'il y avait des cracks par ici alors je vous soumets mon problème. Si quelqu'un trouve une solution, je lui en serai très reconnaissant.
Voici mon problème : j'ai 2 matrices comme si dessus. Elles ont le même nombre de colonne mais pas le même nombre de ligne. Sur chaque colonne, il y a le même nombre de valeurs non nulles.
La première matrice
J'aimerai comparer ces valeurs colonne par colonne mais sans faire de boucle.
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
16
17
18
19
20
21
22
23
24
25
26
27
28 A=[ 1 2 9 58 6 5 0 65 98 0 0 65 6 6 0 1 2 0 0 5 8 0 0 0 2 3 0]; B=[ 0 6 0 0 0 0 0 65.1 0 1 0 0 0 0 9.2 0 0 0 0 6 0 0 2 0 58 0 0 0 0 0 0 0 5 0 5 0 6 0 98 0 0 65 1 3 0 2 0 8 ];
L'objectif, c'est d'avoir des matrices ou il n'y aurait plus de zéros.
Pour faire la différence des deux matrices et connaitre les colonnes ou la différence est nulle.
exemple de ce que je veux :
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
16
17 A1=[ 1 2 9 58 6 5 6 65 98 1 6 65 2 2 8 0 5 0 0 3 0]; B1=[ 1 2 9.2 58 6 5 6 65.1 98 1 6 65 2 2 8 0 5 0 0 3 0];Il va sans dire que mes matrices sont en réalités bien plus grandes (200x8000) environ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sum(abs(A1-B1),1)
J'ai essayer des codes comme :
mais je perds la forme de la matrice et je ne plus savoir quel colonnes correspond à une somme de différences de valeurs absolues nulle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 A1=A(A==0); B1=B(B==0); sum(abs(A1-B1),1);
Merci d'avance pour votre aide.
Partager