matlab中的NAN的产生和处理

matlab中的NAN

例如函数sin(x)/x在x=0处,使用matlab 算其值,在x=0处的值会是NAN,因为matlab会把0/0识别为NAN,而无法计算,更何况这个函数是

x=-4:0.01:4

y=sin(x)./x

这样不连续地产生的,matlab更没有理由去理解这个函数,所以最终返回了NAN

而我们在数学上了解这个函数,这个函数在x=0处的值可以取极限求得,解析地通过洛必达法则求导,知道是1,数值的知道左右函数值逼近的值,也就是这个极限,是1

于是我们就要修正matlab的NAN,修正为数学上这个函数真正的值:极限值

具体为,要么直接知道之将这个NAN赋值为1,要么取x=0很旁边的函数值,这来自极限的含义,左右靠近之逼近的值为极限值

转载于:https://my.oschina.net/u/3695732/blog/2054670