在Matlab软件中“NAN”是什么意思?
NaN 用于处理计算中出现的错误情况,比如 0.0 除以 0.0 或者求负数的平方根。NaN 实际上不是一个数,而是一族。
NAN Not A Number就是代表不是一个数据。一般出现这个东西的原因有两个:
你的程序里出现0作为分母的运算,这个时候可以考虑把被除矩阵整体加一个无限小量,例如1e-10。这样可以消除0作分母的现象。
如果上面这个做法不管用,就是你自己的算法和编程的问题了,导致结果不收敛,发散。
参考资料
在matlab中NAN是什么意思.豆丁网[引用时间2017-12-30]
经常用在下面两种情况
1.数据处理时,在实际工程中经常数据的缺失或者不完整,此时我们可以将那些缺失设置为nan,Matlab处理缺失的数据时就会跳过或者其他处理——这个是Matlab优越于其他语言的表现之一。另外但读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理
比如Matlab中提供的nanmean, nanmax, nanmin, nanstd, nansum, nanvar这么多函数可以处理包含nan的数据
2.还有就是绘图的时候,如果我们想挖掉一部分,那么nan就起作用了
比如我们要绘制z=x^2+y^2在[-10 10]区域的图形但是要挖掉x<sin(y)的那部分,那我们看看如何操作[code][x,y]=meshgrid(-10:0.1:10);
z=x.^2+y.^2;
subplot(121)
mesh(x,y,z)
sel=x<sin(y);
z(sel)=nan;
subplot(122)
mesh(x,y,z)
NAN Not A Number就是代表不是一个数据。
经常用在下面两种情况:
1、数据处理时,在实际工程中经常数据的缺失或者不完整,此时我们可以将那些缺失设置为nan。Matlab处理缺失的数据时就会跳过或者其他处理(这个是Matlab优越于其他语言的表现之一)。
另外在读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理。
比如:Matlab中提供的nanmean, nanmax, nanmin, nanstd, nansum, nanvar这么多函数可以处理包含nan的数据。
2、还有就是绘图的时候,如果我们想挖掉一部分,那么nan就起作用了。
比如:我们要绘制z=x^2+y^2在[-10 10]区域的图形。但是要挖掉x<sin(y)的那部分,那我们看看如何操作:
[code][x,y]=meshgrid(-10:0.1:10);
z=x.^2+y.^2;
subplot(121)
mesh(x,y,z)
sel=x<sin(y);
z(sel)=nan;
subplot(122)
mesh(x,y,z)
根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。
具体步骤如下:/导致这种情况的原因主要是……