isequaln

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

Описание

пример

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

Лечить NaN, NaT, <undefined>, и <missing> значения как неравные другим таким значениям, использование isequal.

пример

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

Совет

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

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

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

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

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

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

.
Введенный в R2012a