how to have the final vector?

3 visualizzazioni (ultimi 30 giorni)
Lilya
Lilya il 29 Mar 2020
Commentato: Lilya il 29 Mar 2020
Hi all,
I've written the following script to calculate the wind direction from u and v components, taking into consideration the quadrants.
The problem is that I should have the final vector for the plot.
Where am I mistaken?
Note: U10 and V10 have a dimension of (1*120).
Thanks for the help.
for i = 1:length (U10);
if(V10 > 0)
kk = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 180);
elseif (U10 < 0 & V10 < 0) ;
kk = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 0);
elseif (U10 > 0 & V10 < 0);
kk = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 360);
end
end
  2 Commenti
David Hill
David Hill il 29 Mar 2020
You should look at the atan2() or atan2d() functions.
Lilya
Lilya il 29 Mar 2020
Will check them, thanks a lot

Accedi per commentare.

Risposta accettata

Daemonic
Daemonic il 29 Mar 2020
Is the purpose of your loop to compare the values of V10 and U10 element-wise? If so, you would need to modify slightly:
if V10(i) > 0 %compares the i'th element of V10 to 0
Secondly is kk the vector you're trying to create? If so, you'd need to make a similar adjustment (also, with a small vector it doesn't matter so much, but for larger ones, you'll speed things up if you pre-populate kk). Example:
kk = nan(size(U10)); %creates empty vector for kk
for i = 1:length (U10);
if(V10(i) > 0) %compares the i'th element of V10 to 0
kk(i) = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 180);
elseif (U10(i) < 0 & V10(i) < 0) ;
kk(i) = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 0);
elseif (U10(i) > 0 & V10(i) < 0);
kk(i) = ((180 / pi) * atan(U10(:,i)/V10(:,i)) + 360);
end
end
Sorry if I misunderstan your question...

Più risposte (1)

Ameer Hamza
Ameer Hamza il 29 Mar 2020
Modificato: Ameer Hamza il 29 Mar 2020
Use atan2, it takes care of the quadrants
result = atan2(U10, V10)
  1 Commento
Lilya
Lilya il 29 Mar 2020
much appreciated, will look at that now

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by