exponenta event banner

isequal

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

Описание

пример

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

Рассматривать NaN, NaT, <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 (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 утра в ту же дату в Каире.

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 месяцев и сравните значения даты и времени для равенства.

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

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