[Matlab] Différence entre deux courbes

Fermé
malokox - 23 juin 2008 à 21:34
 khunlun - 22 janv. 2009 à 10:27
Bonjour,
voici mon probleme :
avec matlab, j'ai tracé deux courbes en fonction du temps à partir de données.
Je voudrais avoir la différence entre ces deux courbes. J'utilise la fonction datenum pour l'echelle du temps.
Le problème est le suivant : l'une des courbes est définie a partir de 18000 données et quelques, l'autre à partir de seulement 1400.
J'aimerais obtenir une courbe approchée de la différence, mais pour faire la différence entre deux matrices, il faut que celles ci aient la meme taille. J'aimerais supprimer des données dans la matrice la plus grande, et l'adapter afin de pouvoir lui soustraire la premiere matrice.
Savez vous comment faire?

Une autre solution serait de récupérer des données approchées directement à partir de la courbe.
Merci

5 réponses

Bonjour,

J'arrive sûrement après la bataille et j'en suis désolé.

Pour ton problème, il y a quelque chose d'assez simple à faire.
Tu peux faire une intersection sur les temps des deux courbes.
Ensuite tu gardes les valeurs associées à ces temps-là.
Une fois ceci fait, tu peux faire la différence des deux courbes (tes deux vecteurs ont alors la même taille).
Et tu fais une interpolation du résultat pour avoir une approximation.

Bonne journée
2
qwsxdcfvgbhnj
23 juin 2008 à 21:45
il suffit que tu prennes un point sur (18000/1400) de ton premier vecteur. Tu peux faire cela assez facilement avec une boucle for.
0
cours de matlab
0
C'est ce que j'ai essayé de faire, en utilisant data(1:18000/1400:16800,9) (ou data est le nom de ma variable), mais il y a un décalage, a cause des démarrages des courbes je pense. Meme en bidouillant, je n'ai pas pu l'enlever.
Je cherchais donc une fonction automatique.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
qwsxdcfvgbhnj
23 juin 2008 à 21:58
le pb c'est que 18000/1400 n'est pas un nombre entier. Dans l'ideal il faudrait faire une interpolation
0