isequal

Определите равенство массивов

Синтаксис

tf = isequal(A,B)
tf = isequal(A1,A2,...,An)

Описание

пример

tf = isequal(A,B) возвращает логический 1 (true), если A и B эквивалентны; в противном случае возвращается логический 0 (false). Смотрите раздел Input Arguments для определения эквивалентности для каждого типа данных. NaN (Не Номер), NaT (Не Время), неопределенные категориальные элементы и значения <missing> считается неравным другим элементам, а также им.

пример

tf = isequal(A1,A2,...,An) возвращает логический 1 (true), если все входные параметры эквивалентны.

Примеры

свернуть все

Создайте две числовых матрицы и сравните их для равенства.

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

Функция возвращает логический 0 (false), потому что матрицы отличаются очень небольшим количеством и не точно равны.

Создайте две структуры и задайте поля в различном порядке.

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

Сравните структуры для равенства.

tf = isequal(A,B)
tf = logical
   1

Даже при том, что упорядоченное расположение полей в каждой структуре отличается, isequal обрабатывает их как то же самое, потому что значения равны.

Сравните логическое значение true с двойным целочисленным 1.

isequal(true,1)
ans = logical
   1

Заметьте, что isequal не рассматривает типа данных, когда это тестирует на равенство.

Точно так же сравните 'A' с эквивалентным ASCII целым числом, 65.

isequal('A',65)
ans = logical
   1

Результатом является логический 1 (true), поскольку double('A') равняется 65.

Создайте три вектора, содержащие значения NaN.

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

Сравните векторы для равенства.

tf = isequal(A1,A2,A3)
tf = logical
   0

Результатом является логический 0 (false), потому что isequal не обрабатывает значения NaN как равные друг другу.

Определите, равна ли полночь 13 января 2013 в Анкоридже, Аляска 11:00 в ту же дату в Каире.

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 = logical
   1

Добавьте 8 месяцев к дате и сравните значения datetime для равенства.

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 = logical
   0

Значения datetime более не не равны, поскольку Каир не наблюдает летнее время.

Даже при том, что размеры и типы данных отличаются, isequal возвращает логический 1 (true) при сравнении вектора символа и скаляра строки, которые содержат ту же последовательность символов.

isequal("foo",'foo')
ans = logical
   1

Входные параметры

свернуть все

Вводы, которые будут сравнены, заданные как массивы.

В некоторых случаях типы входных параметров не должны соответствовать:

  • Числовые входные параметры эквивалентны, если они одного размера, и их содержимое имеет равное значение. Тест сравнивает и действительные и мнимые части числовых массивов.

  • Таблицы, расписания, структуры и массивы ячеек эквивалентны только, когда все элементы и свойства равны.

  • Представьте скаляры в виде строки, и векторы символов, содержащие ту же последовательность символов, эквивалентны.

Некоторые сравнения типа данных имеют специальные замечания включающие метаданные. Если входные параметры - все:

  • Структуры — Поля не должны быть в том же порядке, пока содержимое равно.

  • Порядковые категориальные массивы — Должны иметь те же наборы категорий, включая их порядок.

  • Категориальные массивы, которые не являются порядковыми — Могут иметь различные наборы категорий, и isequal сравнивает названия категории каждой пары элементов.

  • Массивы datetime — isequal игнорирует формат отображения, когда это сравнивает моменты времени. Если массивы все сопоставлены с часовыми поясами, то isequal сравнивает моменты вовремя, а не времена циферблата (например, 01-May-2018 09:00:00 EDT является тем же моментом как 01-May-2018 06:00:00 PDT, таким образом, isequal возвращает true даже при том, что времена циферблата 9:00 и 6:00 отличаются).

  • Объекты — isequal возвращает логический 1 (true) для объектов того же класса с равными значениями свойств.

Серия входных параметров, которые будут сравнены, заданные как массивы.

В некоторых случаях типы входных параметров не должны соответствовать:

  • Числовые входные параметры эквивалентны, если они одного размера, и их содержимое имеет равное значение. Тест сравнивает и действительные и мнимые части числовых массивов.

  • Таблицы, расписания, структуры и массивы ячеек эквивалентны только, когда все элементы и свойства равны.

  • Представьте скаляры в виде строки, и векторы символов, содержащие ту же последовательность символов, эквивалентны.

Некоторые сравнения типа данных имеют специальные замечания включающие метаданные. Если входные параметры - все:

  • Структуры — Поля не должны быть в том же порядке, пока содержимое равно.

  • Порядковые категориальные массивы — Должны иметь те же наборы категорий, включая их порядок.

  • Категориальные массивы, которые не являются порядковыми — Могут иметь различные наборы категорий, и isequal сравнивает названия категории каждой пары элементов.

  • Массивы datetime — isequal игнорирует формат отображения, когда это сравнивает моменты времени. Если массивы все сопоставлены с часовыми поясами, то isequal сравнивает моменты вовремя, а не времена циферблата (например, 01-May-2018 09:00:00 EDT является тем же моментом как 01-May-2018 06:00:00 PDT, таким образом, isequal возвращает true даже при том, что времена циферблата 9:00 и 6:00 отличаются).

  • Объекты — isequal возвращает логический 1 (true) для объектов того же класса с равными значениями свойств.

Советы

  • Используйте isequaln, если вы хотите протестировать на равенство и обработать NaN, NaT или значения <missing> как равные.

  • Равенство двух указателей на функцию зависит от того, как они создаются. Для получения дополнительной информации см. Сравнение указателей на функцию.

  • isequal возвращает логический 0 (false) для двух объектов с динамическими свойствами, даже если свойства имеют те же имена и значения.

  • isequal сравнивает только сохраненные (независимые) свойства при тестировании двух объектов на равенство.

  • При сравнении двух объектов указателя используйте ==, чтобы протестировать, имеют ли объекты тот же указатель. Используйте isequal, чтобы определить, имеют ли два объекта с различными указателями равные значения свойств.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a

Была ли эта тема полезной?