在2D数组中的特定行和列中查找元素

时间:2017-09-08 02:20:41

标签: arrays matlab

我在寻找特定元素时遇到了麻烦。

我有阵列

A = [ 1 2 3 7 2 ; 2 8 5 7 2; 1 9 8 4 1; 8 7 2 10 9; 10 9 4 3 8]

我只想获得4的元素的A(3,4)的索引。但是我的代码吐出元素4的两个位置,即A(5,3)和A(3,4) )。

我使用了[row, col] = find(E==4)

2 个答案:

答案 0 :(得分:0)

使用

[row, col] = find(E==4, 1)

第二个参数是您要查找的元素数。在https://www.mathworks.com/help/matlab/ref/find.html

了解更多详情

Matlab按列顺序搜索矩阵。如果要按行查找第一个元素,可以在调用find之前转置E.但是你需要交换结果索引:

[col, row] = find(E'==4, 1)

答案 1 :(得分:-1)

这是一种查找第一个索引的更长,更迭代的方法:

A = [ 1 2 3 7 2 ;...
    2 8 5 7 2;...
    1 9 8 4 1;...
    8 7 2 10 9;...
    10 9 4 3 8];

[a,b] = size(A);

for i = 1:a
    for j = 1:b
        if A(i,j) == 4
            break
        end
    end
    if A(i,j) == 4
        break
    end
end

index = [i,j]

它为我返回[3,4]。