MATLAB ==和~=运算符注意事项
== 和 ~= 的含义:
在 MATLAB 中用这两个运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据的比较,将可能产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而在计算机计算的过程中出现了近似的现象,从而可能在判断相等与不相等的过程中产生错误,这种错误称为 round off 错误。
例如,考虑下面的两个数,两者均应等于 0:
可以通过检测两数之间在一定的范围内是否近似相等,在这个精确范围内可能会产生 round off 错误。例如:
- 等于运算符(==):如果两变量值相同将会返回 1,如果不同将返回 0。
- 不等运算符(~=):如果两变量值不同则返回 1,相同则返回 0。
在 MATLAB 中用这两个运算符比较两个字符串是安全的,不会出现错误。但对两个数字数据的比较,将可能产生意想不到的错误。两个理论上相等的数不能有一丝一毫的差别,而在计算机计算的过程中出现了近似的现象,从而可能在判断相等与不相等的过程中产生错误,这种错误称为 round off 错误。
例如,考虑下面的两个数,两者均应等于 0:
a=0
b=sin(pi)
a==b
应当返回值 1。但在事实上,MATLAB 计算所产生的结果是:
>> a=0
>> b=sin(pi)
>> a==b
ans = 0
可以通过检测两数之间在一定的范围内是否近似相等,在这个精确范围内可能会产生 round off 错误。例如:
>> abs(a-b) < 1.0E-14
ans = 1
技巧
在检测两数值是否相等时一定要小心,因为 round off 错误可能会使两个本来应该相等的值不相等。这时可以比较确认在 round off 错误的范围内它是不是近似相等。所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算