在Matlab中标记和查找数组元素的位置

时间:2014-05-20 18:34:43

标签: arrays matlab indexing find

我的矩阵的值在[0,1]之间。我想找到并标记那些值为< 0.1和> 0.9的元素的位置。

所以我使用matlab函数查找;但它返回了两个向量:明显的行和列向量,这很难分析。那么有什么方法可以看到哪些元素符合条件的位置而不会丢失原始矩阵结构?

我使用了以下代码行:

[r,c,v]= find(X<0.1 | X>0.9);    % X is my 512*512 matrix of values

谢谢!

2 个答案:

答案 0 :(得分:2)

只需使用这样的条件:

mask = (X < 0.1 | X > 0.9)

将返回一个逻辑数组,其中1表示遵守条件。

答案 1 :(得分:2)

看看这是否适合你 -

%// cell array with each cell housing the  matching indices for each row
out = cellfun(@find,mat2cell(X<0.1 | X>0.9,ones(1,size(X,1)),size(X,2)),'uni',0) 

使用 - out

浏览celldisp(out)的值