Bonjour tout le monde,
Je vous écris car je voudrais faire ce calcul ci dessus, pour chaque année entre 1974 et 2014 :
Ma matrice M2 d'origine est composé de deux colonnes, la première les années et la seconde la magnitude des séismes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 M22 = M2([1525:3053],[1,2]); M22 = sortrows (M22,2); M22 = M22(:,2); flip(M22); for h = 0:0.1:8; length(find(M22 == 0.1+h)) end
M22 correspond donc au ligne 1525 à 3053 de M2 qui est l'année 1975
Ensuite, je trie et calcul le nombre de fois qu'il y a un événement d'une certaine magnitude (ici comprise entre 0 et 8)
Mon premier problème :
Pour faire cela pour chaque année, je me suis donc lancée dans une boucle for/end :
(j'ai de 0 à 3 pour le moment pour tester) Cependant cela ne marche pas et m'indique : Subscript indices must either be real positive integers or logicals pour M2(j) = M2([c==1974+j],[1,2]);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 c = M2(:,1); for j = 0:1:3 M2(j) = M2([c==1974+j],[1,2]); M2(j) = sortrows (M2(j),2); M2(j) = M2(j)(:,2); flip(M2(j)); for h = 0:0.1:8; length(find(M2(j) == 0.1+h)) end end
Matlab est aussi mécontent de mon : M2(j) = M2(j)(:,2);.
Je ne vois pas comment écrire autrement cela...
Mon second problème :
Je voudrais renvoyer les length calculer dans un tableau pour ensuite ajouter tous les tableaux de chaque année.
Si l'un d'entre vous aurez une piste a me fournir, ce serait avec joie.
Merci !
Partager