how to have the final vector?

조회 수: 3 (최근 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 CenterFile Exchange에서 Title에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by