isequaln

Test symbolic objects for equality, treating NaN values as equal

Description

example

isequaln(A,B) returns logical 1 (true) if A and B are the same size and their contents are of equal value. Otherwise, isequaln returns logical 0 (false). All NaN (not a number) values are considered to be equal to each other. isequaln recursively compares the contents of symbolic data structures and the properties of objects. If all contents in the respective locations are equal, isequaln returns logical 1 (true).

example

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

Examples

Compare Two Expressions

Use isequaln to compare these two expressions:

syms x
isequaln(abs(x), x)
ans =
logical
0

For positive x, these expressions are identical:

assume(x > 0)
isequaln(abs(x), x)
ans =
logical
1

For further computations, remove the assumption on x by recreating it using syms:

syms x

Compare Two Matrices

Use isequaln to compare these two matrices:

A = hilb(3);
B = sym(A);
isequaln(A, B)
ans =
logical
0

Compare Vectors Containing NaN Values

Use isequaln to compare these vectors:

syms x
A1 = [x NaN NaN];
A2 = [x NaN NaN];
A3 = [x NaN NaN];
isequaln(A1, A2, A3)
ans =
logical
1

Input Arguments

collapse all

Inputs to compare, specified as symbolic numbers, scalar variables, matrix variables (since R2021a), expressions, functions, vectors, or matrices. If one of the arguments is a symbolic object and the other one is numeric, the toolbox converts the numeric object to symbolic before comparing them.

Series of inputs to compare, specified as symbolic numbers, scalar variables, matrix variables (since R2021a), expressions, functions, vectors, or matrices. If at least one of the arguments is a symbolic object, the toolbox converts all other arguments to symbolic objects before comparing them.

Tips

• Calling isequaln for arguments that are not symbolic objects invokes the MATLAB® isequaln function. If one of the arguments is symbolic, then all other arguments are converted to symbolic objects before comparison.

• isequaln(A,B) checks if A and B are the same size and their contents are syntactically the same expression, treating NaN values as equal. To check whether the mathematical comparison A == B holds for all values of variables in A and B, use isAlways(A == B).