Определение равенства
возвращает логический массив с элементами, заданными как логические A == B1 (true), где массивы 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
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около-N матрица и B является скаляром или 1около-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 block, то ваш код может больше не уловить эти ошибки.
Дополнительные сведения о требуемых размерах входных данных для операций с базовыми массивами см. в разделе Совместимые размеры массивов для операций с базовыми массивами.
categorical, datetime, и duration множестваВ R2020b изменилось поведение
Начиная с R2020b, eq поддерживает неявное расширение, когда аргументы categorical, datetime, или duration массивы. Между R2020a и R2016b неявное расширение поддерживается только для числовых и строковых типов данных.
Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
Примечания и ограничения по использованию:
Создание кода не поддерживает использование eq для проверки равенства между элементом перечисления и строковым массивом, символьным массивом или массивом ячеек символьных массивов.
Эта функция полностью поддерживает массивы графических процессоров. Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Эта функция полностью поддерживает распределенные массивы. Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.