|
|
3 Q; g U* X7 w: l* F! d# j9 r
NAN Not A Number就是代表不是一个数据
: z% h0 `1 F: A0 S" F: v经常用在下面两种情况$ Z/ R( u, G' s- W0 A0 w6 m" M
1.数据处理时,在实际工程中经常数据的缺失或者不完整,此时我们可以将那些缺失设置为nan,Matlab处理缺失的数据时就会跳过或者其他处理——这个是Matlab优越于其他语言的表现之一。另外但读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理
, u3 |# Z5 o" q! B- R0 H0 G( `: i" c. n$ W. @
比如Matlab中提供的nanmean, nanmax, nanmin, nanstd, nansum, nanvar这么多函数可以处理包含nan的数据. W/ M' k( Z W+ d( c
" [/ g. M( ^7 c" d! W
2.还有就是绘图的时候,如果我们想挖掉一部分,那么nan就起作用了
* F) I( s# }8 [, U8 _6 l
: F8 a# K _ M$ A' s; h4 O比如我们要绘制z=x^2+y^2在[-10 10]区域的图形但是要挖掉x<sin(y)的那部分,那我们看看如何操作[code][x,y]=meshgrid(-10:0.1:10);
- q C0 n6 t2 t% I* l7 r% Vz=x.^2+y.^2;7 Z1 z8 @9 W! C/ C/ D( d( b7 V l9 t
subplot(121)- S/ M9 z6 z Y% }
mesh(x,y,z)
8 y6 D$ V+ A, M. f5 d5 Nsel=x<sin(y);
- G. G3 ]0 Y& `$ X* C fz(sel)=nan;
+ {& _2 c( [( N* w- ~; Tsubplot(122)- g6 H4 u4 M$ ~5 j- |9 r2 j
mesh(x,y,z) |
|