Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在数组Matlab中获得正确的块_Arrays_Matlab_Block_Threshold - Fatal编程技术网

Arrays 如何在数组Matlab中获得正确的块

Arrays 如何在数组Matlab中获得正确的块,arrays,matlab,block,threshold,Arrays,Matlab,Block,Threshold,我有一些用Matlab编写的代码,我有一个3 x 3的矩阵。如何获得A>th的块数,并将其保存在Matlab中。我只想得到一个值,下一个值是“1”,所以我应该只得到1块是[12],我的代码中有什么错误吗?请帮忙,非常感谢 这是我的密码 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

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

这是我的密码

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 2),(2 1),(2 2),(3 1),(3)可用于将线性索引转换为下标

[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);

[hasilx,hasily]=find(A>th)
给出了相同的结果。OP在他们的问题中实际使用了
find
,因此我不确定他们其余的代码是做什么的。@David是的,现在我看一下,for循环体中的迭代器已更改。这种行为还没有定义。实际上,我主要查看了请求的输出。谢谢,但我只需要块[12]作为结果。我的代码结果仍然输出[1][2]和[3 3],我不希望值“1”出现。您的循环应该实现什么?并且不应该覆盖循环中的循环索引(
i
j
)。