Определите равенство
возвращает логический массив с элементами, установленными на логический A
== B
1
(true
) где arrays A
и B
равны; в противном случае элемент является логическим 0
(false
). Тест сравнивает обе действительные и мнимые части числовых массивов. eq
возвращает логический 0
(false
) где A
или B
иметь NaN или неопределенные categorical
элементы.
Создайте два вектора, содержащих как вещественные, так и мнимые числа, затем сравните векторы для равенства.
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
и 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
Начиная с R2016b сложения неявного расширения, некоторые комбинации аргументов для основных операций, которые ранее возвращали ошибки, теперь дают результаты. Для примера ранее вы не могли добавить строку и вектор-столбец, но эти операнды теперь действительны для сложения. Другими словами, выражение типа [1 2] + [1; 2]
ранее возвращена ошибка несоответствия размера, но теперь она выполняется.
Если ваш код использует поэлементные операторы и полагается на ошибки, которые MATLAB® ранее возвращенный для несовпадающих размеров, особенно в try
/catch
блок, тогда ваш код может больше не поймать эти ошибки.
Для получения дополнительной информации о необходимых входах параметров для основных операций над массивами, см. «Совместимые размеры массивов для основных операций».
categorical
, datetime
, и duration
массивыПоведение изменено в R2020b
Начиная с R2020b, eq
поддерживает неявное расширение, когда аргументы categorical
, datetime
, или duration
массивы. Между R2020a и R2016b неявное расширение поддерживалось только для числовых и строковых типов данных.
Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
Генерация кода не поддерживает использование eq
чтобы проверить равенство между представителем перечисления и строковыми массивами, символьным массивом или массивом ячеек символьных массивов.
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.