isequaln - Determine array equality, treating NaN values as equal - MATLAB (original) (raw)

Determine array equality, treating NaN values as equal

Syntax

Description

tf = isequaln([A,B](#btbbzj7-1-AB)) returns logical1 (true) if A andB are equivalent; otherwise, it returns logical0 (false). See the Input Arguments section for a definition of equivalence for each data type. NaN (Not a Number),NaT (Not a Time), undefined categorical elements, and<missing> values are considered to be_equal_ to other such values.

To treat NaN, NaT,<undefined>, and <missing> values as unequal to other such values, use isequal.

example

tf = isequaln([A1,A2,...,An](#btbbzj7-1-A1A2An)) returns logical1 (true) if all the inputs are equivalent.

example

Examples

collapse all

Create two numeric matrices and compare them for equality.

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

The function returns logical 0 (false) because the matrices differ by a very small amount and are not exactly equal.

Create two structures and specify the fields in a different order.

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

Compare the structures for equality.

Even though the ordering of the fields in each structure is different, isequaln treats them as the same because the values are equal.

Compare the logical value true to the double integer 1.

Notice that isequaln does not consider data type when it tests for equality.

Similarly, compare 'A' to the ASCII-equivalent integer, 65.

The result is logical 1 (true) since double('A') equals 65.

Create three vectors containing NaN values.

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

Compare the vectors for equality.

The result is logical 1 (true) because isequaln treats the NaN values as equal to each other.

Even though the sizes and data types are different, isequaln returns logical 1 (true) when comparing a character vector and string scalar that contain the same sequence of characters.

Input Arguments

collapse all

Inputs to be compared, specified as arrays.

In some cases, the types of the inputs do not have to match:

Some data type comparisons have special considerations involving metadata. If the inputs are all:

Series of inputs to be compared, specified as arrays.

In some cases, the types of the inputs do not have to match:

Some data type comparisons have special considerations involving metadata. If the inputs are all:

Tips

Extended Capabilities

expand all

The isequaln function fully supports GPU arrays. To run the function on a GPU, specify the input data as a gpuArray (Parallel Computing Toolbox). For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced in R2012a

expand all

In previous releases, isequaln considered two or more empty object arrays equal when they were the same size, but it did not take class into account. Starting in R2022b, isequaln returns logical1 (true) for empty object arrays only when the arrays have the same size and class.