matlab如何删除矩阵中符合条件的多行全部元素
(2014-09-04 02:26:40)
标签:
matlab |
分类: IT背景 |
http://zhidao.baidu.com/question/582732367957243445.html
假如有一个100*7的矩阵,如果某一行第4列或者第5列的元素值为0时,则将这一整行全部删除,最后形成一个新的m*7的矩阵,m小于等于100。该怎么写呢?
举个例子,思路就是利用逻辑运算,找到符合条件的行,然后新的矩阵只取不满足条件的那几行:
>> a
a =
4 4 2 1 3 1 4
5 4 1 3 0 1 2
4 2 1 0 4 3 3
1 4 5 4 4 5 4
5 1 4 4 2 2 5
5 4 2 1 4 3 5
4 1 5 3 4 2 3
>> index = a( :, 4 ) == 0 | a( :, 5 ) == 0
index =
0
1
1
0
0
0
0
>> b = a( ~index, : )%求逆,就表示第四第五列都不为0的那几行
b =
4 4 2 1 3 1 4
1 4 5 4 4 5 4
5 1 4 4 2 2 5
5 4 2 1 4 3 5
4 1 5 3 4 2 3