Main Content

eq, ==

説明

入力 AB が等しい場合、A == B は、要素が logical 1 (true) に設定された logical 配列または logical 値の table を返します。そうでない場合、要素は logical 0 (false) となります。テストでは、数値配列の実数部と虚数部の両方が比較されます。eq は、A または BNaN か未定義の categorical 要素などの欠損値をもつ場合には、logical 0 (false) を返します。

eq(A,B)A == B の代替方法として実行できますが、まれにしか使われません。これにより、クラスの演算子のオーバーロードが可能です。

すべて折りたたむ

実数と虚数の両方を含む 2 つのベクトルを作成し、それらを比較して等価性を評価します。

A = [1+i 3 2 4+i];
B = [1 3+i 2 4+i];
A == B
ans = 1x4 logical array

   0   0   1   1

関数 eq は、等式の実数部と虚数部を両方テストし、いずれも等しい場合にのみ logical 1 (true) を返します。

文字ベクトルを作成します。

M = 'magenta';

== を使用して、特定の文字があるかどうかをテストします。

M == 'e'
ans = 1x7 logical array

   0   0   0   1   0   0   0

logical 1 (true) は、文字 'e' が存在することを示します。

'heads''tails' の 2 つの値をもつ categorical 配列を作成します。

A = categorical({'heads' 'heads' 'tails'; 'tails' 'heads' 'tails'})
A = 2x3 categorical
     heads      heads      tails 
     tails      heads      tails 

'heads' カテゴリのすべての値を検索します。

A == 'heads'
ans = 2x3 logical array

   1   1   0
   0   1   0

logical 1 (true) は、カテゴリの値があることを示します。

等式で A の行を比較します。

A(1,:) == A(2,:)
ans = 1x3 logical array

   0   1   1

logical 1 (true) は、等しいカテゴリ値をもつ行内の位置を示します。

小数のテキストで表された多くの数値は、2 進浮動小数点数として正確に表すことができません。これにより、== 演算子が反映する結果に若干の違いが生じます。

小数で表されている数値に対していくつかの減算演算を実行し、結果を C に格納します。

C = 0.5-0.4-0.1
C = -2.7756e-17

厳密な 10 進演算では、C は "正確に" 0 に等しくなります。その小さい値は、2 進浮動小数点演算の特性によるものです。

等式で C0 と比較します。

C == 0
ans = logical
   0

浮動小数点数を比較するには、== の代わりに許容誤差 tol を使用します。

tol = eps(0.5);
abs(C-0) < tol
ans = logical
   1

C0 の 2 つの数値は、0.5 に近い連続する 2 つの浮動小数点数よりも互いに近い数です。多くの状況で、C0 と同様に振る舞います。

2 つの datetime 配列の要素を比較します。

タイム ゾーンが異なる 2 つの datetime 配列を作成します。

t1 = [2014,04,14,9,0,0;2014,04,14,10,0,0];
A = datetime(t1,'TimeZone','America/Los_Angeles');
A.Format = 'd-MMM-y HH:mm:ss Z'
A = 2x1 datetime
   14-Apr-2014 09:00:00 -0700
   14-Apr-2014 10:00:00 -0700

t2 = [2014,04,14,12,0,0;2014,04,14,12,30,0];
B = datetime(t2,'TimeZone','America/New_York');
B.Format = 'd-MMM-y HH:mm:ss Z'
B = 2x1 datetime
   14-Apr-2014 12:00:00 -0400
   14-Apr-2014 12:30:00 -0400

AB の要素がどこで等しくなっているかを確認します。

A==B
ans = 2x1 logical array

   1
   0

R2023a 以降

2 つの table を作成して比較します。行名 (両方に存在している場合) および変数名は同じでなければなりませんが、同じ順序である必要はありません。出力の行および変数は、最初の入力と同じ順序になります。

A = table([1;2],[3;4],VariableNames=["V1","V2"],RowNames=["R1","R2"])
A=2×2 table
          V1    V2
          __    __

    R1    1     3 
    R2    2     4 

B = table([4;2],[3;1],VariableNames=["V2","V1"],RowNames=["R2","R1"])
B=2×2 table
          V2    V1
          __    __

    R2    4     3 
    R1    2     1 

A == B
ans=2×2 table
           V1       V2  
          _____    _____

    R1    true     false
    R2    false    true 

入力引数

すべて折りたたむ

オペランド。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。入力 AB は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、AMN 列の行列で、B がスカラーまたは 1N 列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。

任意の型の数値入力を比較でき、比較は型変換による精度低下の悪影響を受けません。

  • 一方の入力が categorical 配列である場合、他方の入力には categorical 配列、文字ベクトルの cell 配列または単一の文字ベクトルを指定できます。単一の文字ベクトルは、他方の入力と同じサイズの文字ベクトルの cell 配列に拡張されます。両方の入力が順序 categorical 配列である場合は、順序を含めて同じカテゴリ セットでなければなりません。両方の入力が順序ではない categorical 配列である場合は、異なるカテゴリ セットを含めることができます。詳細については、categorical 配列の要素の比較を参照してください。

  • 一方の入力が datetime 配列である場合、他方の入力には datetime 配列、文字ベクトル、または文字ベクトルの cell 配列を指定できます。

  • 一方の入力が duration 配列である場合、他方の入力には duration 配列または数値配列を指定できます。この演算子は各数値を標準日 (24 時間) の数として扱います。

  • 一方の入力が string 配列の場合、他方の入力には string 配列、文字ベクトル、または文字ベクトルの cell 配列を指定できます。AB の対応する要素は、辞書順に比較されます。

table または timetable である入力は次の条件を満たさなければなりません。 (R2023a 以降)

  • 入力が table または timetable の場合、すべての変数のデータ型で演算がサポートされている必要があります。

  • 一方の入力だけが table または timetable の場合、もう一方の入力は数値または logical 配列でなければなりません。

  • 両方の入力が table または timetable の場合、以下のとおりです。

    • 両方の入力のサイズが同じであるか、一方が 1 行の table でなければなりません。

    • 両方の入力に同じ名前をもつ変数が含まれている必要があります。ただし、各入力の変数の順序は異なっていてもかまいません。

    • 両方の入力が table で、両方とも行名をもつ場合、行名は同じでなければなりません。ただし、各入力の行名の順序は異なっていてもかまいません。

    • 両方の入力が timetable の場合、行時間が同じでなければなりません。ただし、各入力の行時間の順序は異なっていてもかまいません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration | table | timetable
複素数のサポート: あり

ヒント

  • ハンドル オブジェクトを比較する場合は、== を使用して、オブジェクトが同じハンドルをもつかどうかをテストします。isequal を使用して、異なるハンドルをもつオブジェクトが等しいプロパティ値をもつかどうかを判定します。

拡張機能

HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する