MATLAB Function Reference
isequal

Determine if arrays are numerically equal

Syntax

• ```tf = isequal(A,B,...)
```

Description

```tf = isequal(A,B,...) ``` returns logical true (`1`) if the input arrays are the same type and size and hold the same contents, and logical false (`0`) otherwise.

Remarks

When comparing structures, the order in which the fields of the structures were created is not important. As long as the structures contain the same fields, with corresponding fields set to equal values, `isequal` considers the structures to be equal. See Example 2, below.

When comparing numeric values, `isequal` does not consider the data type used to store the values in determining whether they are equal. See Example 3, below.

`NaN`s (Not a Number), by definition, are not equal. Therefore, arrays that contain `NaN` elements are not equal, and `isequal` returns zero when comparing such arrays. See Example 4, below. Use the `isequalwithequalnans` function when you want to test for equality with `NaN`s treated as equal.

`isequal` recursively compares the contents of cell arrays and structures. If all the elements of a cell array or structure are numerically equal, `isequal` returns logical `1`.

Examples

Example 1

Given,

• ```A =                 B =                 C =
1     0             1     0             1     0
0     1             0     1             0     0
```

`isequal(A,B,C)` returns `0`, and `isequal(A,B)` returns `1`.

Example 2

When comparing structures with `isequal`, the order in which the fields of the structures were created is not important:

• ```A.f1 = 25;    A.f2 = 50
A =
f1: 25
f2: 50

B.f2 = 50;    B.f1 = 25
B =
f2: 50
f1: 25

isequal(A, B)
ans =
1
```

Example 3

When comparing numeric values, the data types used to store the values are not important:

• ```A = [25 50];   B = [int8(25) int8(50)];

isequal(A, B)
ans =
1
```

Example 4

Arrays that contain `NaN` (Not a Number) elements cannot be equal, since `NaN`s, by definition, are not equal:

• ```A = [32 8 -29 NaN 0 5.7];
B = A;

isequal(A, B)
ans =
0
```

See Also

`isequalwithequalnans`, `strcmp`, `isa`, is*, relational operators

 isempty isequalwithequalnans