exponenta event banner

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++ с помощью MATLAB ® Coder™

.
Представлен в R2012a