exponenta event banner

isequal

Проверка равенства символьных входных данных

Синтаксис

Описание

пример

isequal(a,b) возвращает логический 1 (true), если a и b одинаковый размер и одинаковое значение их содержания. В противном случае isequal возвращает логический 0 (false). isequal не учитывает NaN (не число) значения равны. isequal рекурсивно сравнивает содержимое символьных структур данных и свойства объектов. Если все содержимое в соответствующих местоположениях равно, isequal возвращает логический 1 (true).

пример

isequal(a1,a2,...,aN) возвращает логический 1 (true), если все входы a1,a2,...,aN равны.

Примеры

Тестовые номера для равенства

Проверка числовых или символьных входных данных на равенство с использованием isequal. Если сравнивать числовые входные данные с символьными, isequal прибыль 0 (false), поскольку двойные и символические типы данных различны.

Проверка, если 2 и 5 равны. Поскольку вы сравниваете двойники, MATLAB ®isequal вызывается функция. isequal прибыль 0 (false), как и ожидалось.

isequal(2,5)
ans =
  logical
   0

Проверка решения уравнения cos(x) == -1 является pi. isequal функция возвращает 1 (true) означает, что решение равно pi.

syms x
sol = solve(cos(x) == -1, x);
isequal(sol,sym(pi))
ans =
  logical
   1

Сравните двойное и символическое представления 1. isequal прибыль 0 (false), поскольку двойные и символические типы данных различны. Возвратиться 1 (true) в этом случае используйте logical вместо этого.

usingIsEqual = isequal(pi,sym(pi))
usingLogical = logical(pi == sym(pi))
usingIsEqual =
  logical
   0
usingLogical =
  logical
   1

Проверка символьных выражений на равенство

Проверка выражений tan(x) и sin(x)/cos(x) синтаксически одинаковы. isequal функция возвращает 0 (false), поскольку выражения различны и isequal не выполняет математическое сравнение между выражениями.

syms x
isequal(tan(x),sin(x)/cos(x))
ans =
  logical
   0

Переписать выражение tan(x) в терминах sin(x) и cos(x). Проверка, если rewrite правильно переписывает tan(x) как sin(x)/cos(x). isequal функция возвращает 1 (true) означает, что переписанный результат равен тестовому выражению.

f = rewrite(tan(x),'sincos');
testf = sin(x)/cos(x);
isequal(f,testf)
ans =
  logical
   1

Проверка математического сравнения tan(x) == sin(x)/cos(x) удерживается для всех значений x, использовать isAlways.

isAlways(tan(x) == sin(x)/cos(x))
ans =
  logical
   1

Проверка символьных векторов и матриц на равенство

Проверка векторов и матриц на равенство с использованием isequal.

Проверка, если решения квадратичного уравнения найдены solve равны ожидаемым решениям. isequal функция возвращает 1 (true) означает, что входные данные равны.

syms a b c x
eqn = a*x^2 + b*x + c;
Sol = solve(eqn, x);
testSol = [-(b+(b^2-4*a*c)^(1/2))/(2*a); -(b-(b^2-4*a*c)^(1/2))/(2*a)];
isequal(Sol,testSol)
ans =
  logical
   1

Матрица Гильберта - это специальная матрица, которую трудно точно инвертировать. Если обратная вычисляется точно, то умножение обратной на исходную матрицу Гильберта возвращает единичную матрицу.

Используйте это условие для символьного тестирования, если обратное hilb(20) вычисляется правильно. isequal прибыль 1 (true) означает, что произведение обратной и исходной матрицы Гильберта равно единичной матрице.

H = sym(hilb(20));
prod = H*inv(H);
eye20 = sym(eye(20));
isequal(prod,eye20)
ans =
  logical
   1

Сравнить входные данные, содержащие NaN

Сравнение трех векторов, содержащих NaN (не число). isequal возвращает логический 0 (false) потому что isequal не лечит NaN значения равны друг другу.

syms x
A1 = [x NaN NaN];
A2 = [x NaN NaN];
A3 = [x NaN NaN];
isequal(A1, A2, A3)
ans =
  logical
   0

Входные аргументы

свернуть все

Входные данные, определенные как числа, векторы, матрицы или массивы, или символьные числа, скалярные переменные, матричные переменные (начиная с R2021a), массивы, функции или выражения.

Входные данные, определенные как числа, векторы, матрицы или массивы, или символьные числа, скалярные переменные, матричные переменные (начиная с R2021a), массивы, функции или выражения.

Совет

  • Если входные данные не являются символическими объектами, MATLAB isequal вызывается функция. Если один из аргументов является символьным, то все остальные аргументы преобразуются в символьные объекты перед сравнением, а символьные isequal вызывается функция.

  • isequal(a,b) проверяет, a и b одинаковый размер, и их содержимое синтаксически одинаковое выражение. Проверка математического сравнения a == b используется для всех значений переменных в a и b, использовать isAlways(a == b).

См. также

| | | | | |

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