bonjour tout le monde
j'ai deux matrices que je souhaiterais comparer par ligne pour pouvoir garder que celles qui m'interessent, elles sont de tailles differentes en nombre de lignes et de colonnes
voilà le debut de mes deux matrices
l'idée est de comparer les trois premieres colonnes de chaque matrice et de ne garder que les lignes de M ou l'on trouve les trois premieres valeurs dans AOT440, (en fait ces trois premieres valeurs sont des dates)M =
1.0e+003 *
2.0050 0.0010 0.0010 0.0100 0.0107
2.0050 0.0010 0.0020 0.0100 0.0125
2.0050 0.0010 0.0030 0.0110 0.0121
2.0050 0.0010 0.0040 0.0150 0.0156
2.0050 0.0010 0.0050 0.0130 0.0126
2.0050 0.0010 0.0060 0.0300 0.0288
2.0050 0.0010 0.0070 0.0150 0.0152
2.0050 0.0010 0.0080 0.0110 0.0144
2.0050 0.0010 0.0090 0.0160 0.0162
2.0050 0.0010 0.0100 0.0170 0.0187
2.0050 0.0010 0.0110 NaN 0.0138
2.0050 0.0010 0.0120 0.0220 0.0224
2.0050 0.0010 0.0130 0.0270 0.0244
2.0050 0.0010 0.0140 0.0250 0.0237
2.0050 0.0010 0.0150 0.0290 0.0287
2.0050 0.0010 0.0160 0.0120 0.0141
2.0050 0.0010 0.0170 0.0270 0.0238
2.0050 0.0010 0.0180 NaN 0.0168
2.0050 0.0010 0.0190 NaN 0.0120
2.0050 0.0010 0.0200 0.0110 0.0111
OT440 =
1.0e+003 *
2.0050 0.0010 0.0010 0.0002
2.0050 0.0010 0.0040 0.0007
2.0050 0.0010 0.0050 0.0009
2.0050 0.0010 0.0060 0.0026
2.0050 0.0010 0.0070 0.0010
2.0050 0.0010 0.0080 0.0008
2.0050 0.0010 0.0090 0.0013
2.0050 0.0010 0.0120 0.0028
2.0050 0.0010 0.0130 0.0009
2.0050 0.0010 0.0150 0.0005
2.0050 0.0010 0.0180 0.0005
2.0050 0.0010 0.0190 0.0002
2.0050 0.0010 0.0210 0.0002
2.0050 0.0010 0.0220 0.0016
2.0050 0.0010 0.0230 0.0010
2.0050 0.0010 0.0240 0.0006
2.0050 0.0010 0.0250 0.0009
2.0050 0.0010 0.0260 0.0009
2.0050 0.0010 0.0300 0.0010
2.0050 0.0010 0.0310 0.0006
j'ai essayé avec intersect, setxor, celà me donne les lignes avec les valeurs et non la position de la ligne.
j'ai du mal avec l'indexation aussi
est ce que quelqu'un a une idéé
voilà le debut de mon code
aprés je bloque
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 clear all; close all; %% CHARGEMENT DES DEUX MATRICES A COMPARER load('matrice.mat')%données agoufou 2005 pour AOT440 AOT440; load ('365 fichiers lus, dernier au 20051231.mat') MAT; TABFINAL; M=MAT(:,1:5) %données Agoufou OMI, valeur cimel et moyenne pavé 3 [x y]=size(MAT); [n m]=size(AOT440); %% COMPARAISON DES DEUX MATRICES a=M(:,1:3); b=AOT440(:,1:3); c=intersect(a,b) for n=1:length(b) for m=1:length(a) if b(n,:) == a(m,:)
merci d'avance
Partager