Main Content

isequaln

NaN の値を等しいものとして配列の等価性を判別

説明

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

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

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

すべて折りたたむ

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

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

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

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

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

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

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

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

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

isequaln(true,1)
ans = logical
   1

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

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

isequaln('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 = isequaln(A1,A2,A3)
tf = logical
   1

isequaln が NaN 値同士を等価として扱うため、結果は logical 1 (true) になります。

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

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

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ヒント

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

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

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

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

拡張機能

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

バージョン履歴

R2012a で導入

すべて展開する