Main Content

isequal

配列の等価性を判別

説明

tf = isequal(A,B) は、AB が等価であれば logical 1 (true) を返し、それ以外の場合は logical 0 (false) を返します。各データ型での等価の定義については、入力引数の節を参照してください。NaN (Not a Number)、NaT (Not a Time) 値、未定義の categorical 要素、および <missing> 値は、他の要素および自分自身と "等価でない" と見なされます。

NaNNaT<undefined>、および <missing> の値を他のそのような値と等価として扱うには、isequaln を使用します。

tf = isequal(A1,A2,...,An) は、すべての入力が等価である場合、logical 1 (true) を返します。

すべて折りたたむ

2 つの数値行列を作成し、等価性を比較します。

A = zeros(3,3)+1e-20;
B = zeros(3,3);
tf = isequal(A,B)
tf = logical
   0

行列がごくわずか異なっていて、"厳密に" 同じでないため、この関数は logical 0 (false) を返します。

2 つの構造体を作成し、異なる順序でフィールドを指定します。

A = struct('field1',0.005,'field2',2500);
B = struct('field2',2500,'field1',0.005);

構造体の等価性を比較します。

tf = isequal(A,B)
tf = logical
   1

各構造体のフィールドの順序は異なっていますが、値は等しいため、isequal はそれらを同じであるとして扱います。

logical 値 true を double の整数 1 と比較します。

isequal(true,1)
ans = logical
   1

isequal は、等価性をテストするときにデータ型を考慮しません。

同様に、'A' を ASCII 等価整数 65 と比較します。

isequal('A',65)
ans = logical
   1

double('A')65 と等しいため、結果は logical 1 (true) です。

NaN 値を含む 3 つのベクトルを作成します。

A1 = [1 NaN NaN];
A2 = [1 NaN NaN];
A3 = [1 NaN NaN];

ベクトルの等価性を比較します。

tf = isequal(A1,A2,A3)
tf = logical
   0

isequal が NaN 値同士を等価として扱わないため、結果は logical 0 (false) になります。

アラスカ州アンカレッジでの 2013 年 1 月 13 日午前 0 時が、カイロでの同日の午前 11 時と等しいかどうかを判別します。

t1 = datetime(2013,1,13,0,0,0,'TimeZone','America/Anchorage');
t2 = datetime(2013,1,13,11,0,0,'TimeZone','Africa/Cairo');
tf = isequal(t1,t2)
tf = logical
   1

日付に 8 ヵ月を追加して、datetime 値が等しいかどうかを比較します。

t1 = datetime(2013,9,13,0,0,0,'TimeZone','America/Anchorage');
t2 = datetime(2013,9,13,11,0,0,'TimeZone','Africa/Cairo');
tf = isequal(t1,t2)
tf = logical
   0

カイロでは夏時間を実施していないため、datetime 値は等しくありません。

同じ文字のシーケンスを含む文字ベクトルと string スカラーを比較する場合、サイズとデータ型が異なっていても、isequal は logical 1 (true) を返します。

isequal("foo",'foo')
ans = logical
   1

入力引数

すべて折りたたむ

比較する入力。配列として指定します。

次のような場合、入力の型は一致している必要はありません。

  • 数値入力は、それらが同じサイズで、その内容が等しい値である場合に等価となります。テストでは数値配列の実数部と虚数部が個別に比較されます。

  • table、timetable、構造体、cell 配列は、すべての要素とプロパティが等しい場合にのみ等価となります。

  • string スカラーと文字ベクトルは、同じ文字のシーケンスが含まれている場合に等価となります。

一部のデータ型比較では、メタデータに関して特別な考慮事項があります。入力が "すべて" 以下の場合:

  • 構造体 — 内容が同じであれば、フィールドの順序が同じである必要はありません。

  • 順序 categorical 配列 — 順序を含めて同じカテゴリ セットでなければなりません。

  • 順序でない categorical 配列 — カテゴリ セットは異なっていてもかまいません。isequal は、要素の各ペアのカテゴリ名を比較します。

  • datetime 配列 — isequal は時点を比較する際に表示形式を無視します。配列がすべてタイム ゾーンに関連付けられている場合、isequal は表示上の時刻ではなく実際の時点を比較します (たとえば、01-May-2018 09:00:00 EDT01-May-2018 06:00:00 PDT と同じ時点なので、表示上の時刻は 9:00 と 6:00 で異なりますが、isequaltrue を返します)。

  • オブジェクト — プロパティ値が等しく、クラスが同じオブジェクトの場合に、isequal は logical 1 (true) を返します。

比較する一連の入力。配列として指定します。

次のような場合、入力の型は一致している必要はありません。

  • 数値入力は、それらが同じサイズで、その内容が等しい値である場合に等価となります。テストでは数値配列の実数部と虚数部が個別に比較されます。

  • table、timetable、構造体、cell 配列は、すべての要素とプロパティが等しい場合にのみ等価となります。

  • string スカラーと文字ベクトルは、同じ文字のシーケンスが含まれている場合に等価となります。

一部のデータ型比較では、メタデータに関して特別な考慮事項があります。入力が "すべて" 以下の場合:

  • 構造体 — 内容が同じであれば、フィールドの順序が同じである必要はありません。

  • 順序 categorical 配列 — 順序を含めて同じカテゴリ セットでなければなりません。

  • 順序でない categorical 配列 — カテゴリ セットは異なっていてもかまいません。isequal は、要素の各ペアのカテゴリ名を比較します。

  • datetime 配列 — isequal は時点を比較する際に表示形式を無視します。配列がすべてタイム ゾーンに関連付けられている場合、isequal は表示上の時刻ではなく実際の時点を比較します (たとえば、01-May-2018 09:00:00 EDT01-May-2018 06:00:00 PDT と同じ時点なので、表示上の時刻は 9:00 と 6:00 で異なりますが、isequaltrue を返します)。

  • オブジェクト — プロパティ値が等しく、クラスが同じオブジェクトの場合に、isequal は logical 1 (true) を返します。

ヒント

  • 2 つの関数ハンドルの等価性は、各ハンドルの構成方法に依存します。詳細については、関数ハンドルの比較を参照してください。

  • 2 つのオブジェクトが動的プロパティをもつ場合、それらのプロパティの名前と値が同じであっても、isequal は logical 0 (false) を返します。

  • isequal は 2 つのオブジェクトの等価性をテストするときに、保存されている (非依存) プロパティのみを比較します。

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

  • 空のオブジェクト配列を比較する場合、配列のサイズとクラスが同じ場合にのみ isequal は logical 1 (true) を返します。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する