1

MATLAB:式の「大なり記号」は何を意味しますか:(1-X)。*(X> 1)はどういう意味ですか?

Xは列ベクトルであり、理論的にはXの各要素は0から1までの範囲にあります。数値的には有限の精度のため、要素は1.0をわずかに超える可能性があるため、これは一種の条件または制約である可能性があります。

何か案は?

4

2 に答える 2

3

あなたが説明する文脈では、それは本質的に1より大きい要素を「選択」し、それらを1から減算することです。結果内の他のすべての要素(の位置にある要素X <= 1)は、の結果からゼロが乗算されているため、0になりますX > 1。次に例を示します。

>> X = [0 0.5 1 1.5 2];
>> X > 1

ans =

 0     0     0     1     1

>> (1 - X)

ans =

1.0000    0.5000         0   -0.5000   -1.0000

>> (1 - X) .* (X > 1)

ans =

     0         0         0   -0.5000   -1.0000

最後の結果では、最初の結果の3つのゼロが(要素ごとに)中央の結果の最初の3つの値と乗算され、2つのゼロが中央の結果の最後の2つの値で乗算されています。このようにして、最初にX> 1の位置で(1-X)の結果を効果的に選択しました。

明らかに、Xの値が1より大きい場合、結果は常にすべてゼロになります。

于 2013-03-24T13:08:06.717 に答える
2

式は、1より大きいすべての要素に対して(論理 '1')を(X > 1)返し、それ以外の場合は(論理 '0')を返します。したがって、の対応する要素が1より大きい「1」を含むブールベクトル(と同じサイズ)を生成します。MATLAB演算子に精通することを強くお勧めします。truefalseX > 1XX

式の残りの部分については:

(1 - X)単に、と同じ次元のベクトルを返しますX。ここで、各要素は、X1から対応する要素を減算した結果です。

.*は要素ごとの乗算であるため、最終結果は(と同じ次元のX)ベクトルになります。ここで、i番目の要素はX i > 1の場合は(1-X i)に等しく、それ以外の場合は0になります。

 >> X = [-1 4 0 2 -3];
 >> X > 1

 ans =
      0     1     0     1     0

 >> 1 - X

 ans =
      2    -3     1    -1     4

 >> (1 - X) .* (X > 1)

 ans =
      0    -3     0    -1     0
于 2013-03-24T13:10:21.967 に答える