isequal

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

Описание

пример

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

Обрабатывать NaNNAT, <undefined>, и <missing> значения как равные другим таким значениям, использовать isequaln.

пример

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 ложь) потому что матрицы отличаются очень небольшим количеством и не точно равны.

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

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 ложь) потому что 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) для объектов того же класса с равными значениями свойств.

Советы

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

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

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

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

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

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

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

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