how to have the final vector?

5 ビュー (過去 30 日間)
Lilya
Lilya 2020 年 3 月 29 日
コメント済み: Lilya 2020 年 3 月 29 日
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 件のコメント
David Hill
David Hill 2020 年 3 月 29 日
You should look at the atan2() or atan2d() functions.
Lilya
Lilya 2020 年 3 月 29 日
Will check them, thanks a lot

サインインしてコメントする。

採用された回答

Daemonic
Daemonic 2020 年 3 月 29 日
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...
  1 件のコメント
Lilya
Lilya 2020 年 3 月 29 日
Thank you very much!!

サインインしてコメントする。

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 3 月 29 日
編集済み: Ameer Hamza 2020 年 3 月 29 日
Use atan2, it takes care of the quadrants
result = atan2(U10, V10)
  1 件のコメント
Lilya
Lilya 2020 年 3 月 29 日
much appreciated, will look at that now

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by