找到索引矩阵Matlab

时间:2013-09-09 14:36:38

标签: matlab indexing find

矩阵维度和find函数存在问题。

对于每一行,我试图找到与该值大于20相关的索引,并将结果存储在另一个矩阵中。

例如:

A = [
    10  21  30
     1  40  50
     1   0   0 
    50  10   3];


index = 
    2 3 
    2 3
    0
    1

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

使用findaccumarray

>> [r c] = find( A > 20 );
>> index = accumarray( r, c, [], @(x) {x} )

index = 
 [ 2, 3 ]
 [ 2, 3 ]
       []
 [    1 ]

请注意index是一个酒窖。

答案 1 :(得分:2)

您的输出必须采用该格式吗?这很简单:

[row,col] = find(A > 20);

答案 2 :(得分:2)

你真的需要指数吗?如果不是:

>> A = [
    10  21  30
     1  40  50
     1   0   0 
    50  10   3];

>> A>20
ans =
     0     1     1
     0     1     1
     0     0     0
     1     0     0