Problème avec une boucle if
이전 댓글 표시
Bonjour,
J’ai un petit problème avec une boucle if, car mes conditions ne sont pas prises en compte. Je souhaite calculer la direction de courants à partir des composantes Nord et Est de la vitesse du courant. J’ai donc 4 conditions pour calculer cette direction suivant le signe de vitesse nord et vitesse Est. Le soucis avec ma boucle c’est que toutes les directions sont calculées avec ma première instruction, donc c’est faux, et je ne comprends pas pourquoi...
Si l’un de vous pouvait me dire ce qui ne va pas dans ma boucle, ce serait vraiment cool !
for r=1:1:433
for c=1:1:20
if Vx_space(r,c)>0 && Vy_space(r,c)>0
tangente_a=Vx_space./Vy_space;
alpha=atand(tangente_a);
direction_Vr=alpha;
elseif Vx_space(r,c)>0 && Vy_space(r,c)<0
tangente_b=Vy_space./Vx_space;
alpha=atand(tangente_b);
direction_Vr=90+abs(alpha);
elseif Vx_space(r,c)<0 && Vy_space(r,c)<0
tangente_c=Vx_space./Vy_space;
alpha=atand(tangente_c);
direction_Vr=alpha+180;
elseif Vx_space(r,c)<0 && Vy_space(r,c)>0
tangente_d=Vy_space./Vx_space;
alpha=atand(tangente_d);
direction_Vr=270+abs(alpha);
end
end
end
댓글 수: 2
Mathieu NOE
2021년 4월 21일
Bonjour Léana
je ne vois pas d'erreur dans le code.
J'ai fais un test basique en entrant des données aléatoires (négatif et positif) et on passe bien dans les 4 conditions
es tu sûre que tu as des données Vx_space ou Vy_space < 0 dans tes données ?
Mon test :
Vx_space = randn(10,12);
Vy_space = randn(10,12);
for r=1:1:10%433
for c=1:1:12%20
if Vx_space(r,c)>0 && Vy_space(r,c)>0
tangente_a=Vx_space./Vy_space;
alpha=atand(tangente_a);
direction_Vr=alpha;
a = 1
elseif Vx_space(r,c)>0 && Vy_space(r,c)<0
tangente_b=Vy_space./Vx_space;
alpha=atand(tangente_b);
direction_Vr=90+abs(alpha);
a = 2
elseif Vx_space(r,c)<0 && Vy_space(r,c)<0
tangente_c=Vx_space./Vy_space;
alpha=atand(tangente_c);
direction_Vr=alpha+180;
a = 3
elseif Vx_space(r,c)<0 && Vy_space(r,c)>0
tangente_d=Vy_space./Vx_space;
alpha=atand(tangente_d);
direction_Vr=270+abs(alpha);
a = 4
end
end
end
donne les résultats suivants :
a =
4
a =
2
a =
4
a =
4
a =
1
a =
3
a =
2
a =
1
a =
4
a =
4
a =
1
a =
1
a =
4
a =
2
a =
2
a =
2
a =
2
a =
1
a =
3
a =
1
a =
1
a =
3
a =
3
a =
1
a =
2
a =
2
a =
1
a =
1
a =
4
a =
4
a =
3
a =
2
a =
2
a =
1
a =
1
a =
1
a =
3
a =
3
a =
1
a =
2
a =
1
a =
4
a =
2
a =
1
a =
4
a =
3
a =
3
a =
2
a =
2
a =
4
a =
4
a =
2
a =
1
a =
4
a =
3
a =
3
a =
4
a =
3
a =
4
a =
1
a =
1
a =
2
a =
3
a =
2
a =
2
a =
2
a =
1
a =
4
a =
2
a =
3
a =
2
a =
4
a =
3
a =
2
a =
4
a =
3
a =
2
a =
2
a =
2
a =
1
a =
4
a =
4
a =
1
a =
4
a =
1
a =
4
a =
2
a =
2
a =
2
a =
1
a =
1
a =
3
a =
2
a =
3
a =
3
a =
1
a =
4
a =
3
a =
4
a =
3
a =
1
a =
4
a =
4
a =
3
a =
1
a =
3
a =
2
a =
4
a =
3
a =
2
a =
1
a =
3
a =
4
a =
3
a =
1
a =
3
a =
3
a =
2
a =
3
a =
2
Léana TACKUY
2021년 4월 23일
채택된 답변
추가 답변 (0개)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!