善用 find() 和 sum() 函数!
假设存在如下矩阵 a :
>> a = [1,2,3;4,5,6;7,8,9]
a =
1 2 3
4 5 6
7 8 9
1:找到矩阵中大于i 的位置,输入find(a>i)即可。注意,matlab是以列的方式读取,依次读取第一列、第二列...,所以下标第二个值是第一列第二个值4,而不是第一行第二个值2
如:获取矩阵a中大于3 的位置
>> find(a>3)
ans =
2
3
5
6
8
9
得到的是位置,对应的分别是4,7,5,8,6,9,要想得到在矩阵中所在的位置(此意为另一种显示方式),所在位置用1代替,其它设为0----目的:1一目了然,2便于统计(sum函数)个数。
x = zeros(size(a))
x =
0 0 0
0 0 0
0 0 0
>> x(find(a>3))=1
x =
0 0 0
1 1 1
1 1 1
在矩阵中对应值为1的即为矩阵a对应大于3的位置!
2,用length()计算,统计大于 i 的个数。
如,统计a中大于6的个数
>> length(a>6)
ans =
3
3、用length()、find()获得矩阵中每一行某一列,大于某一个数的个数
如,统计矩阵中第三行大于5的个数
>> length(find(a(:,3)>5))
ans =
2
以上的行、列可根据你的矩阵大小或需求,更改对应数字即可,所求是否为小于、等于抑或小于等于,大于等于,直接替换对应的运算符(>)即可!