Main Content

isequal

Determine array equality

Description

example

tf = isequal(A,B)returns logical1(true) ifAandBare equivalent; otherwise, it returns logical0(false). See theInput Argumentssection for a definition of equivalence for each data type.NaN(Not a Number),NaT(Not a Time), undefined categorical elements, andvalues are considered to beunequalto other elements, as well as themselves.

To treatNaN,NaT,, andvalues as equal to other such values, useisequaln.

example

tf = isequal(A1,A2,...,An)returns logical1(true如果所有的输入都是武器装备valent.

Examples

collapse all

Create two numeric matrices and compare them for equality.

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

The function returns logical0(false) because the matrices differ by a very small amount and are notexactlyequal.

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 = isequal(A,B)
tf =logical1

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

Compare the logical valuetrueto the double integer1.

isequal(true,1)
ans =logical1

Notice thatisequaldoes not consider data type when it tests for equality.

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

isequal('A',65)
ans =logical1

The result is logical1(true) sincedouble('A')equals65.

Create three vectors containing NaN values.

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

Compare the vectors for equality.

tf = isequal(A1,A2,A3)
tf =logical0

The result is logical0(false) becauseisequaldoes not treat NaN values as equal to each other.

Determine if midnight on January 13, 2013 in Anchorage, Alaska is equal to 11 AM on the same date in Cairo.

t1 = datetime(2013,1,13,0,0,0,'TimeZone','America/Anchorage'); t2 = datetime(2013,1,13,11,0,0,'TimeZone','Africa/Cairo'); tf = isequal(t1,t2)
tf =logical1

Add 8 months to the date, and compare the datetime values for equality.

t1 = datetime(2013,9,13,0,0,0,'TimeZone','America/Anchorage'); t2 = datetime(2013,9,13,11,0,0,'TimeZone','Africa/Cairo'); tf = isequal(t1,t2)
tf =logical0

The datetime values are no longer equal since Cairo does not observe daylight saving time.

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

isequal("foo",'foo')
ans =logical1

Input Arguments

collapse all

Inputs to be compared, specified as arrays.

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

  • Numeric inputs are equivalent if they are the same size and their contents are of equal value. The test compares real and imaginary parts of numeric arrays separately.

  • Tables, timetables, structures, and cell arrays are equivalent only when all elements and properties are equal.

  • String scalars and character vectors containing the same sequence of characters are equivalent.

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

  • 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, andisequalcompares the category names of each pair of elements.

  • Datetime arrays —isequalignores display format when it compares points in time. If the arrays are all associated with time zones, thenisequalcompares the instants in time rather than the clockface times (for example,01-May-2018 09:00:00 EDTis the same instant as01-May-2018 06:00:00 PDT, soisequalreturnstrueeven though the clockface times of 9:00 and 6:00 differ).

  • Objects —isequalreturns logical1(true) for objects of the same class with equal property values.

Series of inputs to be compared, specified as arrays.

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

  • Numeric inputs are equivalent if they are the same size and their contents are of equal value. The test compares real and imaginary parts of numeric arrays separately.

  • Tables, timetables, structures, and cell arrays are equivalent only when all elements and properties are equal.

  • String scalars and character vectors containing the same sequence of characters are equivalent.

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

  • 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, andisequalcompares the category names of each pair of elements.

  • Datetime arrays —isequalignores display format when it compares points in time. If the arrays are all associated with time zones, thenisequalcompares the instants in time rather than the clockface times (for example,01-May-2018 09:00:00 EDTis the same instant as01-May-2018 06:00:00 PDT, soisequalreturnstrueeven though the clockface times of 9:00 and 6:00 differ).

  • Objects —isequalreturns logical1(true) for objects of the same class with equal property values.

Tips

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

  • isequalreturns logical0(false) for two objects with dynamic properties, even if the properties have the same names and values.

  • isequalcompares only stored (non-dependent) properties when testing two objects for equality.

  • When comparing two handle objects, use==to test whether objects have the same handle. Useisequalto determine if two objects with different handles have equal property values.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced before R2006a