如何在Array Matlab中获得正确的块

时间:2016-04-18 05:09:04

标签: arrays matlab block threshold

我有一些用Matlab编写的代码,我有矩阵A 3 x 3.如何获得块数A> th,并将其保存在Matlab中。而我只是想得到一个值下一个值“1”所以我应该只得到一个块是[1 2],我的代码有什么问题吗?请帮助谢谢你

这是我的代码

th = 0.1;
A =[1 0.2 0.03; 0.2 1 0.03; 0.2 0.03 1];
index = 0;

for i = 1:size(A,1)
    for j = 1:size(A,2)
        if i == j
            [i j] = find(A > th)
            index = index + 1;
            hasil = [i j];
        end
    end
end

如果我运行我的程序,结果如下: (1 1),(1 2),(2 1),(2 2),(3 1),(3 3)

1 个答案:

答案 0 :(得分:1)

ind2sub可用于将线性索引转换为下标。

[hasilx,hasily] = ind2sub(size(A), find(A>th));
[hasilx hasily]

ans =

 1     1
 2     1
 3     1
 1     2
 2     2
 3     3

find也可以直接返回下标:

[hasilx,hasily]=find(A>th);