|
1)any(A,dim),返回矩阵A的dim维是否有非零值,如有非零,返回逻辑1,若全为0,返回逻辑0
此命令可用于判断、修改、删除全零行或全零列,例如
A=rand(5,5);
A([1,3],:)=0;
A(1,4)=1
A =
0 0 0 1.0000 0
0.3112 0.6541 0.2290 0.9961 0.0046
0 0 0 0 0
0.1656 0.7482 0.1524 0.4427 0.8173
0.6020 0.4505 0.8258 0.1067 0.8687
这样A就是一个第三行全为0,第1行有一个不为零的矩阵
b=any(A,2)
b =
1
1
0
1
1
正确判断出A的第三行全为零
A=A(b,:)
A=A(b,:)
A =
0 0 0 1.0000 0
0.3112 0.6541 0.2290 0.9961 0.0046
0.1656 0.7482 0.1524 0.4427 0.8173
0.6020 0.4505 0.8258 0.1067 0.8687
简单来写就是A=A(any(A,2),:),即可除去全零行,A=A(:,any(A,1)),可以除去全零列
2)all(A,dim) ,返回逻辑值判断A的dim维是否全是非零值,若是返回逻辑1,若有零值,返回逻辑0。用法与any类似,不再赘述
3) nanmean
A=nanmean(A,dim) 返回矩阵A沿dim维中非NAN数的均值,应用如下
A=ones(4);
A(:,2)=0
A =
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
想要计算A每行非0数的均值,即可
A(A==0)=nan
A =
1 NaN 1 1
1 NaN 1 1
1 NaN 1 1
1 NaN 1 1
B=nanmean(A,2)
B =
1
1
1
1
将不想要的数设为NAN,然后用nanmean做平均,可以很方便的得到想要的均值
4)squeeze 高维矩阵降维
A=rand(3,4,2);
B=A(1,1,:)
B(:,:,1) =
0.0497
B(:,:,2) =
0.4039
此时B依旧为[1,1,2]的3维数组
而C=squeeze(A(1,1,:))
C =
0.0497
0.4039
成功降维
Copyright ©2011-2014 bbs.06climate.com All Rights Reserved. Powered by Discuz! (京ICP-10201084)
本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论