今天在使用matlab计算过程中,发生了一个很奇怪的事。当我让两个矩阵相乘时,本该为0的位置居然出现一段很长的分号表达式,如下图:
![1a366a0c7c485090921ddae0e6660586.png](https://i-blog.csdnimg.cn/blog_migrate/c2823206d4f94561c16c9d11174e089b.png)
我左思右想,到底哪里出现了问题,一番摸索后,我发现A矩阵中的的数字有点不一样,为什么0要表示成0.000?于是我直接输入矩阵A,把0.000改为0重新计算,就获得想要的结果。
![9bbf409a71ed90bb7bacd7e789f2bf08.png](https://i-blog.csdnimg.cn/blog_migrate/85da24403b94c00f3eb3b2e2f7b56fc0.png)
我不禁思考,这是怎么回事呢?一顿摸索后,发现最终问题出现在cos(pi/2)这个函数。在matlab中我们输入cos(pi/2)获得的结果如下:
![6d91e09dd55478a04fa1fac50be0869c.png](https://i-blog.csdnimg.cn/blog_migrate/50468c7e1997b9be040fcd95afbb736a.png)
这个发现让我有点惊讶,于是我又输入了sin(pi/2)、cos(pi)、sin(pi)等函数,结过发现sin(pi)也不等于0。于是我去找度娘寻找答案,知道应该数据储存类型有关,计算结果存在一定误差。同时怎么样可以让结果显示为0呢?,我找到了一种解决办法。我们可以定义一个符号变量 pi,然后再运行cos(pi)就能得到想要的结果
![38ae6c7e91766fd839028dc9ca7603bf.png](https://i-blog.csdnimg.cn/blog_migrate/1bead6bdfabd194a13de5841b0470cd4.png)