Bonjour,
J'ai plusieurs questions concernant un petit bout de code que je dois écrire. Le principe est de définir une fonction (du temps) continue est définie par morceaux sur un intervalle donné. Plusieurs questions se posent à moi :
1) la première un peu bête...
Je définis mon vecteur temps en fonction de ma fréquence d'échantillonage Fs t=[0:1/Fs:T]. Jusque là tout va bien j'ai bien dans mon Workspace mon vecteur t 1x238 double avec les différentes valeurs du temps.
Maintenant, si j'écris par exmple w=cos(t), dans mon Workspace j'ai un 1x238 double pour w, mais avec des 1 dans toutes les cases... Ne dervais-je pas avoir les valeurs de w évaluées aux différents temps t ?
Ce qui est étonnant c'est que si je plot(t,w), je retrouve bien la courbe de mon cos sur l'intervalle spécifié.
A noter que ma variable w apparait en italique bleu dans le Workspace, cela a peut être son importance.
2) Ma deuxième question concerne la définition de ma fonction par morceaux
J'ai essayé de définir cela sous dans mon script principal sous en créant une fonction; sans succès:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 t=[0/1/Fs:T] %mon vecteur temps for i=0:1:Fs*T %je parcours mes échantillons if t(i)<0.004 %ma condition pour le premier tronçon w(i)=cos(t(i)) %ma valeur de la fonction w sur le premier tronçon elseif (t(i)>=0.004) w(i)=..... end end
Dans l'idée c'est ça que je veux faire mais le problème est qu'n incrémentant i dans la boucle for; pour i suffisamment grand, mon premier if devient toujours faux et mon deuxième if toujours vrai, et je ne retrouve donc au final dans w que les valeurs définies par ma deuxième fonction. Y a-t-il une méthode plus aisée peut-être en définissant deux vecteurs temps différents (un pour chaque morceau de fonction)
Je vous remercie par avance ! !
Partager