MATLAB:式の「大なり記号」は何を意味しますか:(1-X)。*(X> 1)はどういう意味ですか?
Xは列ベクトルであり、理論的にはXの各要素は0から1までの範囲にあります。数値的には有限の精度のため、要素は1.0をわずかに超える可能性があるため、これは一種の条件または制約である可能性があります。
何か案は?
MATLAB:式の「大なり記号」は何を意味しますか:(1-X)。*(X> 1)はどういう意味ですか?
Xは列ベクトルであり、理論的にはXの各要素は0から1までの範囲にあります。数値的には有限の精度のため、要素は1.0をわずかに超える可能性があるため、これは一種の条件または制約である可能性があります。
何か案は?
あなたが説明する文脈では、それは本質的に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より大きい場合、結果は常にすべてゼロになります。
式は、1より大きいすべての要素に対して(論理 '1')を(X > 1)
返し、それ以外の場合は(論理 '0')を返します。したがって、の対応する要素が1より大きい「1」を含むブールベクトル(と同じサイズ)を生成します。MATLAB演算子に精通することを強くお勧めします。true
false
X > 1
X
X
式の残りの部分については:
(1 - X)
単に、と同じ次元のベクトルを返しますX
。ここで、各要素は、X
1から対応する要素を減算した結果です。
.*
は要素ごとの乗算であるため、最終結果は(と同じ次元の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