isequaln()
正在测试符号对象的相等性,如文档中所述。但是,以下脚本的情况并非如此。
syms a
f1=cos(a)^2;
f2=1-sin(a)^2;
isequaln(f1,f2)
ans =
logical
0
MATLAB不会返回正确答案。当比较符号表达式的等式、比较字符串(即正则表达式的典型场景(或其他内容时,MATLAB会做什么?
在文档页面的底部,有一个名为"Tips";,其中包含以下项目:
isequaln(A,B)
检查A
和B
是否大小相同,并且它们的内容在语法上是否为相同的表达式,将NaN值视为相等。要检查数学比较A == B
是否适用于A
和B
中变量的所有值,请使用isAlways(A == B)
。
(强调矿(
isAlways
做你想做的事:
syms a
f1 = cos(a)^2;
f2 = 1-sin(a)^2;
isAlways(f1 == f2)
从而输出CCD_ 10。
替代方案:
>> simplify(f1-f2)
ans =
0
>> simplify(f1==f2)
ans =
symtrue