Протестируйте равенство символьных входных параметров
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
Протестируйте если rewrite
правильно перезаписи tan(x)
как sin(x)/cos(x)
. isequal
функция возвращает 1
TRUE
) значение переписанного результата равняется проверяемому выражению.
syms x f = rewrite(tan(x),'sincos'); testf = sin(x)/cos(x); isequal(f,testf)
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
Когда ваши входные параметры не являются символьными объектами, isequal
MATLAB функция вызвана. Если один из аргументов является символьным, то все другие аргументы преобразованы в символьные объекты перед сравнением и символьным
isequal
функция вызвана.