isequaln()
如文档中所述,正在测试符号对象的相等性。但是,以下脚本不是这种情况。
syms a
f1=cos(a)^2;
f2=1-sin(a)^2;
isequaln(f1,f2)
ans =
logical
0
MATLAB 未返回正确答案。在比较符号表达式的相等性、比较字符串(即正则表达式的典型场景)或其他东西时,MATLAB 会做什么?
最佳答案
在文档页面的底部,有一个名为“提示”的部分,其中包含以下项目:
isequaln(A,B)
checks ifA
andB
are the same size and their contents are syntactically the same expression, treating NaN values as equal. To check whether the mathematical comparisonA == B
holds for all values of variables inA
andB
, useisAlways(A == B)
.
(强调我的)
isAlways
做你想做的:
syms a
f1 = cos(a)^2;
f2 = 1-sin(a)^2;
isAlways(f1 == f2)
这会输出 true
。
备选方案:
>> simplify(f1-f2)
ans =
0
>> simplify(f1==f2)
ans =
symtrue
关于matlab - 为什么 MATLAB 无法检查此三角表达式的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70779105/