如何在Matlab/Octave中查找匹配元素的下标

14

在矩阵中给定一个值,如何获取该值在矩阵中出现的下标?

例如,在这个例子中:

octave:27> X=rand(3)
X =

   0.46749   0.41187   0.26832
   0.91106   0.63567   0.97302
   0.71809   0.55269   0.84742

给定值 0.26832,我想提取下标 (1,3)

2个回答

20
[ix,iy]=find(X==0.26832)
ix = 
    1
iy = 
    3

2
[i j]=ind2sub(size(X),find(X==0.26832))

1
奇怪,我在使用Octave 3.2.4时得到了ix = 和iy = - Joel
这是因为没有任何元素“完全”等于0.26832。您可以尝试以下代码:X=[1 2 3; 4 5 6]; [i j]=ind2sub(size(X),find(X==5)) - Oli
好的,这很有道理,谢谢。我对不使用一些 epsilon 进行 fp 比较有些怀疑。 - Joel
2
find单独使用可以产生相同的输出时,使用findsizeind2sub的组合有什么优势? - arne.b
你说得对,你的解决方案更好。我点赞了它。当有多个输出时,我总是会对“find”的输出感到困惑。 - Oli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接