any()与all()函数定义这里就不说了。
解决的问题,测量主机通过串口通讯传输过来大量数值文件,但数据中夹杂了很多因为不定期通讯中断造成的0数值,现在需要把这些0数值删除掉。
直接放例子:
x=[1 0 0 0 1 1 1 0 0;1 2 3 4 0 5 6 7 0;9 8 0 7 6 5 0 0 0];x=x';x(all(x==0,2),:)=[]
x =
1 1 9
0 2 8
0 3 0
0 4 7
1 0 6
1 5 5
1 6 0
0 7 0
这里all(x==0,2),有个==0,所以输出的是整行非全零的数值。
我得到的数据顺序排列,只有一列。
x=[1 0 0 0 1 1 1 0 0 1 2 3 4 0 5 6 7 0 9 8 0 7 6 5 0 0 0];x=x';x(all(x==0,2),:)=[]
x =
1
1
1
1
1
2
3
4
5
6
7
9
8
7
6
5
可以看到,所有的0都去掉了。
x=[1 0 0 0 1 1 1 0 0;1 2 3 4 0 5 6 7 0;9 8 0 7 6 5 0 0 0];x=x';x(all(x,2),:)=[]
x =
0 2 8
0 3 0
0 4 7
1 0 6
1 6 0
0 7 0
0 0 0
可以看到,这里得到所有包含0的行,全零的行没有显示。
x=[1 0 0 0 1 1 1 0 0;1 2 3 4 0 5 6 7 0;9 8 0 7 6 5 0 0 0];x=x';x(all(x,2)==0,:)=[]
x =
1 1 9
1 5 5
这里把全没有零的显出来了。
any()函数用法类似。只要达到效果就行。个人留存一下。
2546

被折叠的 条评论
为什么被折叠?



