eq, ==

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

Синтаксис

A == B
eq(A,B)

Описание

пример

A == B возвращает логический массив с набором элементов к логическому 1 (true), где массивы A и B равны; в противном случае элементом является логический 0 (false). Тест сравнивает и действительные и мнимые части числовых массивов. eq возвращает логический 0 (false), где A или B имеют NaN или неопределенные категориальные элементы.

eq(A,B) является альтернативным способом выполнить A == B, но редко используется. Это позволяет выполнить перегрузку оператора для классов.

Примеры

свернуть все

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

A = [1+i 3 2 4+i];
B = [1 3+i 2 4+i];
A == B
ans = 1x4 logical array

   0   0   1   1

Функция eq тестирует и действительные и мнимые части на равенство и возвращает логический 1 (true) только там, где обе части равны.

Создайте вектор символа.

M = 'masterpiece';

Протестируйте на присутствие определенного символа с помощью ==.

M == 'e'
ans = 1x11 logical array

   0   0   0   0   1   0   0   0   1   0   1

Значение логического 1 (true) указывает на присутствие символьного 'e'.

Создайте категориальный массив с двумя значениями: 'heads' и 'tails'.

A = categorical({'heads' 'heads' 'tails'; 'tails' 'heads' 'tails'})
A = 2x3 categorical array
     heads      heads      tails 
     tails      heads      tails 

Найдите все значения в категории 'heads'.

A == 'heads'
ans = 2x3 logical array

   1   1   0
   0   1   0

Значение логического 1 (true) указывает на значение в категории.

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

A(1,:) == A(2,:)
ans = 1x3 logical array

   0   1   1

Значение логического 1 (true) указывает, где строки имеют равные значения категории.

Много чисел, выраженных в десятичном тексте, не могут быть представлены точно как двоичные плавающие числа. Это приводит к небольшим различиям в результатах, которые отражает оператор ==.

Выполните несколько операций вычитания на числах, выраженных в десятичном числе, и сохраните результат в C.

C = 0.5-0.4-0.1
C = -2.7756e-17

С точной десятичной системой исчисления C должен быть равен точно 0. Его маленькое значение происходит из-за природы бинарной арифметики с плавающей точкой.

Сравните C с 0 для равенства.

C == 0
ans = logical
   0

Сравните числа с плавающей запятой с помощью допуска, tol, вместо того, чтобы использовать ==.

tol = eps(0.5);
abs(C-0) < tol
ans = logical
   1

Эти два числа, C и 0, ближе друг к другу, чем два последовательных числа с плавающей запятой около 0.5. Во многих ситуациях C может действовать как 0.

Сравните элементы двух массивов datetime.

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

t1 = [2014,04,14,9,0,0;2014,04,14,10,0,0];
A = datetime(t1,'TimeZone','America/Los_Angeles');
A.Format = 'd-MMM-y HH:mm:ss Z'
A = 2x1 datetime array
   14-Apr-2014 09:00:00 -0700
   14-Apr-2014 10:00:00 -0700

t2 = [2014,04,14,12,0,0;2014,04,14,12,30,0];
B = datetime(t2,'TimeZone','America/New_York');
B.Format = 'd-MMM-y HH:mm:ss Z'
B = 2x1 datetime array
   14-Apr-2014 12:00:00 -0400
   14-Apr-2014 12:30:00 -0400

Проверьте, где элементы в A и B равны.

A==B
ans = 2x1 logical array

   1
   0

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

свернуть все

Левый массив, заданный как скаляр, вектор, матрица или многомерный массив. Числовой или строка вводит A, и B должен или быть одного размера или иметь размеры, которые совместимы (например, A является M-by-N матрица, и B является скаляром или 1-by-N вектор - строка). Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".

Если A и B являются категориальными, datetime или массивы длительности, то они должны быть одного размера, если каждый не скаляр.

  • Если один входной параметр является категориальным массивом, другой входной параметр может быть категориальным массивом, массивом ячеек из символьных векторов или односимвольным вектором. Односимвольный вектор расширяется в массив ячеек из символьных векторов, одного размера как другой входной параметр. Если оба входных параметра являются порядковыми категориальными массивами, у них должны быть те же наборы категорий, включая их порядок. Если оба входных параметра являются категориальными массивами, которые не являются порядковыми, у них могут быть различные наборы категорий. Дополнительную информацию см. в Сравнении элементов категориального массива.

  • Если один входной параметр является массивом datetime, другой входной параметр может быть массивом datetime, вектором символа или массивом ячеек из символьных векторов.

  • Если один входной параметр является массивом длительности, другой входной параметр может быть массивом длительности или числовым массивом. Оператор обрабатывает каждое числовое значение как многие стандартные 24-часовые дни.

  • Если один входной параметр является массивом строк, другой входной параметр может быть массивом строк, вектором символа или массивом ячеек из символьных векторов. Соответствующие элементы A и B сравнены лексикографически.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | категориальный | datetime | длительность
Поддержка комплексного числа: Да

Правый массив, заданный как скаляр, вектор, матрица или многомерный массив. Числовой или строка вводит A, и B должен или быть одного размера или иметь размеры, которые совместимы (например, A является M-by-N матрица, и B является скаляром или 1-by-N вектор - строка). Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".

Если A и B являются категориальными, datetime или массивы длительности, то они должны быть одного размера, если каждый не скаляр.

  • Если один входной параметр является категориальным массивом, другой входной параметр может быть категориальным массивом, массивом ячеек из символьных векторов или односимвольным вектором. Односимвольный вектор расширяется в массив ячеек из символьных векторов, одного размера как другой входной параметр. Если оба входных параметра являются порядковыми категориальными массивами, у них должны быть те же наборы категорий, включая их порядок. Если оба входных параметра являются категориальными массивами, которые не являются порядковыми, у них могут быть различные наборы категорий. Дополнительную информацию см. в Сравнении элементов категориального массива.

  • Если один входной параметр является массивом datetime, другой входной параметр может быть массивом datetime, вектором символа или массивом ячеек из символьных векторов.

  • Если один входной параметр является массивом длительности, другой входной параметр может быть массивом длительности или числовым массивом. Оператор обрабатывает каждое числовое значение как многие стандартные 24-часовые дни.

  • Если один входной параметр является массивом строк, другой входной параметр может быть массивом строк, вектором символа или массивом ячеек из символьных векторов. Соответствующие элементы A и B сравнены лексикографически.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | категориальный | datetime | длительность
Поддержка комплексного числа: Да

Советы

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

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

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

Была ли эта тема полезной?