関係演算子を使用した配列の比較
関係演算子では、「より小」、「より大」、「等しくない」などの演算子を使用して、オペランドが量的に比較されます。関係比較の結果は、関係が真である位置を示す logical 配列です。
以下は、MATLAB® の関係演算子です。
| 記号 | 等価な機能をもつ関数 | 説明 |
|---|---|---|
< | lt | より小さい |
<= | le | 以下 |
> | gt | より大きい |
>= | ge | 以上 |
== | eq | 等しい |
~= | ne | 等しくない |
配列の比較
数値配列
関係演算子は、2 つの配列を要素単位で比較します。演算を簡略化するには、配列のサイズに互換性がなければなりません。サイズに互換性のある配列は、計算の実行時、暗黙的に同じサイズに拡張されます。最も簡単なケースでは、2 つのオペランドが同じサイズの配列であるか、一方がスカラーです。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
たとえば、同じサイズの 2 つの行列を比較すると、結果は、関係が真である位置を示す要素をもつ同じサイズの logical 行列になります。
A = [2 4 6; 8 10 12]
A =
2 4 6
8 10 12B = [5 5 5; 9 9 9]
B =
5 5 5
9 9 9A < B
ans =
1 1 0
1 0 0同様に、配列のいずれかをスカラーと比較することもできます。
A > 7
ans =
0 0 0
1 1 11 行 N 列の行ベクトルを M 行 1 列の列ベクトルと比較する場合、MATLAB は、各ベクトルを M 行 N 列の行列に拡張してから比較を実行します。結果の行列には、ベクトルの要素の組み合わせごとの比較結果が含まれます。
A = 1:3
A =
1 2 3B = [2; 3]
B =
2
3A >= B
ans =
0 1 1
0 0 1空配列
両方の配列が互換性のあるサイズである限り、関係演算子はいずれかの次元のサイズがゼロである配列を処理します。したがって、一方の配列の次元サイズがゼロである場合、他方の配列の対応する次元のサイズは 1 またはゼロでなければならず、出力におけるその次元のサイズはゼロになります。
A = ones(3,0); B = ones(3,1); A == B
ans = Empty matrix: 3-by-0
ただし、次の式
A == []
では、A が 0 行 0 列または 1 行 1 列でない場合は、エラーが返されます。これは、+、-、>、<、&、| など、他のすべての二項演算子でも同様です。
空配列を調べるには、isempty(A) を使用します。
複素数
演算子
>、<、>=および<=は、比較の実行時にオペランドの実数部のみを使用します。演算子
==および~=は、オペランドの実数部と虚数部の両方をテストします。
Inf、NaN、NaT および未定義の要素の比較
Inf値は、他のInf値と等しくなります。NaNは、他のNaN値を含め、その他のどの数値とも等しくありません。NaT値は、他のNaT値を含め、その他のどの datetime 値とも等しくありません。未定義の categorical 要素は、他の未定義の要素を含め、その他のどの categorical 値とも等しくありません。
論理ステートメント
関係演算子を論理演算子 A & B (AND)、A | B (OR)、xor(A,B) (XOR)、および ~A (NOT) と組み合わせて使用し、より複雑な論理ステートメントをつなぎ合わせることができます。
たとえば、2 つの配列で負の要素が生じる位置を特定できます。
A = [2 -1; -3 10]
A =
2 -1
-3 10B = [0 -2; -3 -1]
B =
0 -2
-3 -1A<0 & B<0
ans =
0 1
1 0他の例については、条件を満たす配列要素の検索を参照してください。