eq, ==
等価性の判定
説明
例
実数と虚数の両方を含む 2 つのベクトルを作成し、それらを比較して等価性を評価します。
A = [1+i 3 2 4+i]; B = [1 3+i 2 4+i]; A == B
ans = 1×4 logical array
0 0 1 1
関数 eq
は、等式の実数部と虚数部を両方テストし、いずれも等しい場合にのみ logical 1
(true
) を返します。
文字ベクトルを作成します。
M = 'magenta';
==
を使用して、特定の文字があるかどうかをテストします。
M == 'e'
ans = 1×7 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 = 2×3 categorical
heads heads tails
tails heads tails
'heads'
カテゴリのすべての値を検索します。
A == 'heads'
ans = 2×3 logical array
1 1 0
0 1 0
logical 1
(true
) は、カテゴリの値があることを示します。
等式で A
の行を比較します。
A(1,:) == A(2,:)
ans = 1×3 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 進浮動小数点演算の特性によるものです。
等式で C
を 0
と比較します。
C == 0
ans = logical
0
浮動小数点数を比較するには、==
の代わりに許容誤差 tol
を使用します。
tol = eps(0.5); abs(C-0) < tol
ans = logical
1
C
と 0
の 2 つの数値は、0.5
に近い連続する 2 つの浮動小数点数よりも互いに近い数です。多くの状況で、C
は 0
と同様に振る舞います。
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 = 2×1 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 = 2×1 datetime
14-Apr-2014 12:00:00 -0400
14-Apr-2014 12:30:00 -0400
A
と B
の要素がどこで等しくなっているかを確認します。
A==B
ans = 2×1 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 として指定します。入力 A
と B
は、同じサイズであるか、互換性のあるサイズでなければなりません (たとえば、A
が M
行 N
列の行列で、B
がスカラーまたは 1
行 N
列の行ベクトル)。詳細については、基本的な演算で互換性のある配列サイズを参照してください。
任意の型の数値入力を比較でき、比較は型変換による精度低下の悪影響を受けません。
一方の入力が順序
categorical
配列である場合、他方の入力には順序categorical
配列か、categorical
値を表す string スカラーまたは文字ベクトルを指定できます。両方の入力が順序categorical
配列である場合は、順序を含めて同じカテゴリ セットでなければなりません。詳細については、categorical 配列の要素の比較を参照してください。一方の入力が
datetime
配列である場合、他方の入力にはdatetime
配列か、日付と時刻を表す string スカラーまたは文字ベクトルを指定できます。詳細については、日付と時刻の比較を参照してください。一方の入力が
duration
配列である場合、他方の入力にはduration
配列か、時間の長さを表す string スカラーまたは文字ベクトル、各要素が固定長の 24 時間の日数を表す数値配列を指定できます。詳細については、日付と時刻の比較を参照してください。一方の入力が string 配列の場合、他方の入力には string 配列、文字ベクトル、または文字ベクトルの cell 配列を指定できます。
A
とB
の対応する要素は、辞書順に比較されます。詳細については、テキストの比較を参照してください。
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
を使用して、異なるハンドルをもつオブジェクトが等しいプロパティ値をもつかどうかを判定します。
拡張機能
eq
関数は tall 配列を完全にサポートしています。詳細については、tall 配列を参照してください。
使用上の注意および制限:
コード生成では、
eq
を使用した列挙型メンバーと string 配列、文字配列または文字配列の cell 配列との間の等価性のテストはサポートされません。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
eq
関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
スパース
gpuArray
オペランドはサポートされていません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入eq
オペレーターでは、変数にアクセスするためにインデックス付けを行うことなく、table および timetable に対して直接演算を行うことがサポートされます。すべての変数のデータ型で演算がサポートされている必要があります。詳細については、table および timetable での直接計算を参照してください。
R2020b 以降、引数が categorical
配列、datetime
配列、または duration
配列である場合に、eq
は暗黙的な拡張をサポートします。R2020a と R2016b の間は、暗黙的な拡張は数値データ型および string データ型でのみサポートされていました。
R2016b から暗黙的な拡張が追加されたことにより、それまで基本演算でエラーを返していた一部の引数の組み合わせで、結果が出力されるようになりました。たとえば、以前は行ベクトルと列ベクトルを加算できませんでしたが、それらのオペランドは現在、加算で有効になっています。つまり、[1 2] + [1; 2]
のような式は、以前はサイズの不一致エラーを返していましたが、実行されるようになりました。
コードで要素単位の演算子を使用し、以前 MATLAB® の返していたサイズの不一致エラーに依存している場合 (特に try
/catch
ブロック内)、コードは今後、これらのエラーをキャッチしなくなることがあります。
基本的な配列演算に必要な入力サイズの詳細については、基本的な演算で互換性のある配列サイズを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)