== 和 ~= 的含义:
在 MATLAB 中用这两个运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据的比较,将可能产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而在计算机计算的过程中出现了近似的现象,从而可能在判断相等与不相等的过程中产生错误,这种错误称为 round off 错误。
例如,考虑下面的两个数,两者均应等于 0:
因为这两个数在理论上相等,所以关系式a==b应当返回值 1。但在事实上,MATLAB 计算所产生的结果是:
MATLAB 报告了 a 和 b 不同,因为它产生了一个 round off 错误,在计算中,sin(pi) 产生的结果是 1.2246×10-16,而不是 0。两个理论上相等的值因为 round off 错误而发生了细微的差别。
可以通过检测两数之间在一定的范围内是否近似相等,在这个精确范围内可能会产生 round off 错误。例如:
将产生正确的结果,不管 a 与 b 在计算中是否产生 round off 错误。
在检测两数值是否相等时一定要小心,因为 round off 错误可能会使两个本来应该相等的值不相等。这时可以比较确认在 round off 错误的范围内它是不是近似相等。