eq, ==

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

Синтаксис

Описание

пример

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

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

The 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
     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
   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
   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 вектор-строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Можно сравнить числовые входы любого типа, и сравнение не несет потери точности из-за преобразования типов.

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

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

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration
Поддержка комплексного числа: Да

Совет

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

Вопросы совместимости

расширить все

Поведение изменено в R2016b

Поведение изменено в R2020b

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

.

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

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