0

MatLab のブール論理は初めてですが、変数 u と v があります。これらはセル配列 (長さ 1 x 2928) で、それぞれ u と v の値 (風) を持つ 58 x 58 のセル マトリックスを持ちます。次の式を使用して合成ベクトル (風向) を計算するために与えられた式を使用する必要がありますが、これを理解することはできません! どんな助けでも大歓迎です!

for i = 1:2928
    if (v > 0) 
        direction {i} = ((180 / pi) * arctan((u/v)) + 180);
    elseif (u < 0 and v < 0);
        direction {i} = ((180 / pi) * arctan((u/v)) + 0);
    else (u > 0 and v < 0);
        direction {i} = ((180 / pi) * arctan((u/v)) + 360);
    end
end

ありがとう!

4

2 に答える 2

0

for ループを使用して要素ごとに計算を行っているため、v(i) 要素と u(i) 要素も指定する必要があります。

for i = 1:2928
   if (v(i) > 0) 
      direction(i) = ((180 / pi) * arctan((u(i)/v(i))) + 180);
   elseif (u(i) < 0 && v(i) < 0);
      direction(i) = ((180 / pi) * arctan((u(i)/v(i))) + 0);
   else (u(i) > 0 && v(i) < 0);
      direction(i) = ((180 / pi) * arctan((u(i)/v(i))) + 360);
   end
end

for ループを使用せずに、上記と同じ計算を行う、より単純で洗練された方法があります。

これを試して:

direction(v>0) = ((180 / pi) * arctan((u(v>0)./v(v>0))) + 180);

他の条件についても同じことを行います。「and」および || の代わりに && を使用します。「または」が必要な場合。

于 2013-07-23T03:24:22.043 に答える