善用 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(a>6))

ans =

     3

3、用length()、find()获得矩阵中每一行某一列,大于某一个数的个数

如,统计矩阵中第三行大于5的个数

>> length(find(a(:,3)>5))

ans =

     2

以上的行、列可根据你的矩阵大小或需求,更改对应数字即可,所求是否为小于、等于抑或小于等于,大于等于,直接替换对应的运算符(>)即可!

matlab 如何统计矩阵中大于、小于或等于某一值的位置、个数_941618163的博客-CSDN博客_matlab寻找矩阵中大于某数值的值

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐