Pb matlab matrice

Résolu
nini94 -  
 nini94 -
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   Statut Membre Dernière intervention   1 835
 
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
nini94
 
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   Statut Membre Dernière intervention   1 835 > nini94
 
Salut
A quelle ligne ça bloque?
Bonne soirée
0
nini94 > Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention  
 
en faite j ai compris pourquoi cela bloquait il fallait rejouter un point au numérateur. merci beaucoup pour ton aide.
0