Протестируйте равенство символьных входных параметров
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
Когда ваши входные параметры не являются символьными объектами, MATLAB isequal
функция вызвана. Если один из аргументов является символьным, то все другие аргументы преобразованы в символьные объекты перед сравнением и символьным isequal
функция вызвана.
isequal(a,b)
проверки, если a
и b
одного размера и их содержимое является синтаксически тем же выражением. Проверять ли математическое сравнение a == b
содержит для всех значений переменных в a
и b
, используйте isAlways(a == b)
.