isequaln

Определите равенство массивов, обработав значения NaN как равные

Синтаксис

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

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

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

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

isequaln(true,1)
ans = logical
   1

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

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

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

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

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

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

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

tf = isequaln(A1,A2,A3)
tf = logical
   1

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Советы

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

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

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

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

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

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

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

Представленный в R2012a

Для просмотра документации необходимо авторизоваться на сайте