Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

isequaln

Determine array equality, treating NaN values as equal

Syntax

Description

example

tf = isequaln(A,B) returns logical 1 (true) if A and B are the same size and their contents are of equal value; otherwise, it returns logical 0 (false). The test compares both real and imaginary parts of numeric arrays. isequaln ignores the data type of the values in determining whether they are equal. For cell arrays, categorical arrays, tables, or structures, the function returns logical 1 (true) only when all elements and properties are equal. Undefined categorical elements, <missing>, NaN (Not a Number), or NaT (Not a Time) values are considered to be equal to other such values.

example

tf = isequaln(A1,A2,...,An) returns logical 1 (true) if all the inputs are numerically equal.

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)
tf =

  logical

   0

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.

tf = isequaln(A,B)
tf =

  logical

   1

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.

isequaln(true,1)
ans =

  logical

   1

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

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

isequaln('A',65)
ans =

  logical

   1

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.

tf = isequaln(A1,A2,A3)
tf =

  logical

   1

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

Input Arguments

collapse all

Inputs to be compared, specified as numeric arrays, categorical arrays, cell arrays, string arrays, tables, structures, logical arrays, character arrays, datetime arrays, duration arrays, calendarDuration arrays, or objects. The numeric types of A and B do not have to match.

  • You can compare any combination of datetime arrays and cell arrays of character vectors for equality.

If inputs A and B are both

  • Structures -- Fields need not be in the same order as long as the contents are equal.

  • Ordinal categorical arrays -- Must have the same sets of categories, including their order.

  • Categorical arrays that are not ordinal -- Can have different sets of categories, and isequaln compares the category names of each pair of elements.

  • Datetime arrays -- isequaln ignores time zone and display format when it compares points in time.

  • Objects with dynamic properties – isequaln returns logical 0 (false). This applies even if the properties have the same name and value.

Series of inputs to be compared, specified as numeric arrays, categorical arrays, cell arrays, string arrays, tables, structures, logical arrays, character arrays, string arrays, datetime arrays, duration arrays, calendarDuration arrays, or objects. The numeric types of the inputs do not have to match.

  • You can compare any combination of datetime arrays and cell arrays of character vectors for equality.

If the inputs are all

  • Structures -- Fields need not be in the same order as long as the contents are equal.

  • Ordinal categorical arrays -- Must have the same sets of categories, including their order.

  • Categorical arrays that are not ordinal -- Can have different sets of categories, and isequaln compares the category names of each pair of elements.

  • Datetime arrays -- isequaln ignores time zone and display format when it compares points in time.

  • Objects with dynamic properties – isequaln returns logical 0 (false). This applies even if the properties have the same name and value.

More About

collapse all

Tips

  • When comparing handle objects, use == to test whether objects have the same handle. Use isequaln to treat NaN values as equal and determine if objects with different handles have equal property values.

  • Use isequal if you want to test for equality and treat NaN, NaT, or <missing> values as unequal.

  • The equality of two function handles depends on how they are constructed. For more information, see Compare Function Handles.

See Also

| | | |

Introduced in R2012a

Was this topic helpful?