isequal

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

Описание

пример

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

пример

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

Примеры

Протестируйте числа на равенство

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

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

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 ложь) потому что двойной и символьный отличные типы данных. Возвратить 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 ложь) поскольку выражения отличаются и 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 ложь) потому что 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