|
|
& \* M6 n& c1 y# R: i% vNAN Not A Number就是代表不是一个数据. B3 ^$ B" b; y8 u
经常用在下面两种情况
8 ^6 d8 ]8 t) B/ F6 H- f! q( D1.数据处理时,在实际工程中经常数据的缺失或者不完整,此时我们可以将那些缺失设置为nan,Matlab处理缺失的数据时就会跳过或者其他处理——这个是Matlab优越于其他语言的表现之一。另外但读取数据时,某个字符不是数据,那么Matlab自动将它认为nan处理
; B2 B8 ?. ?! i) J0 r. P, e! I9 F# y" D+ m' h, w4 F
比如Matlab中提供的nanmean, nanmax, nanmin, nanstd, nansum, nanvar这么多函数可以处理包含nan的数据+ Q/ N- E8 y+ u3 k* U4 Z
8 C0 }4 U' h! y' P+ Y( \
2.还有就是绘图的时候,如果我们想挖掉一部分,那么nan就起作用了
/ [* k+ @) m) e" Z2 c8 e. H' ]0 g
$ D" @. f7 f3 ]0 A1 z2 @比如我们要绘制z=x^2+y^2在[-10 10]区域的图形但是要挖掉x<sin(y)的那部分,那我们看看如何操作[code][x,y]=meshgrid(-10:0.1:10);! L, {+ Q" |2 l+ a* g) w7 Y
z=x.^2+y.^2;
: N5 s8 W8 ^, F7 C& c ssubplot(121)
$ ~& u2 g: m2 ]" f7 m; E2 D. dmesh(x,y,z)
: q: `2 Q; @ g4 V# m2 ]; |sel=x<sin(y);
4 z! P9 k$ G4 V. e. D& Xz(sel)=nan;0 u3 t/ d0 B0 a+ Z# W6 C/ p
subplot(122)8 V% Q' D5 d% f4 V. |1 U' W: e
mesh(x,y,z) |
|