Pb matlab matrice

Résolu/Fermé
nini94 - 10 avril 2008 à 16:33
 nini94 - 15 avril 2008 à 09:05
Bonjour,

j ai l équation suivante :

E= A*(uq-Bud-G)/(C*(ud^2+uq^2)-Duq-Fud)

avec A,B,C,D et F et G des constantes fixées.

on sait que ud et uq sont compris entre -10 et 10 et que sqrt(ud^2+uq^2)<=10

je souhaite effectuer un graphe 3D avec ud = X uq =Y et Z=E mais quand je transforme mes vecteurs en matrices le résultats de E n est plus valide donc ma transformation est fausse. Comment puis-je constituer un tel graphe ?

1 réponse

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
10 avril 2008 à 18:38
Salut
[uq,ud]=meshgrid([-10:0.1:10]);
E=zeros(size(ud));
logical_mat=sqrt(ud.^2+uq.^2)<=10;
E(logical_mat)=A*(uq(logical_mat)-B*ud(logical_mat)-G)./...
(C*(ud(logical_mat).^2+uq(logical_mat).^2)-D*uq(logical_mat)-F*ud(logical_mat));
E(~logical_mat)=NaN;
surf(ud,uq,E);shading interp;

Il y a plus simple que ce petit bidouillage, si je retrouve je te dis.
Cela dit, je suppose que ton graphe va avoir une sale tête vu que ton dénominateur s'annule.
A plus
0
salut,

merci pour ta réponse rapide jeudi soir.Étant en RTT vendredi j'ai testé ton programme ce matin et matlab me sort un message d'erreur suivant : " ??? In an assignment A(I) = B, the number of elements in B and
I must be the same." alors du coup je regarde la taille de mes mes deux matrices et c'est vrai elles n'ont pas les mêmes dimensions. Donc j enlève le logical_mat dans le membre de gauche et la les deux matrices ont la même taille et là le même message d'erreur apparaît. Je ne comprend pas ce qui se passe, pouvez-vous m aider ?
merci d'avance
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834 > nini94
14 avril 2008 à 20:32
Salut
A quelle ligne ça bloque?
Bonne soirée
0
nini94 > Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009
15 avril 2008 à 09:05
en faite j ai compris pourquoi cela bloquait il fallait rejouter un point au numérateur. merci beaucoup pour ton aide.
0