【问题标题】:How to find subscripts of matching element(s) in matlab/octave如何在matlab/octave中找到匹配元素的下标
【发布时间】:2012-01-07 02:51:29
【问题描述】:

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

所以在这个例子中

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)

【问题讨论】:

    标签: matlab matrix octave


    【解决方案1】:
    [ix,iy]=find(X==0.26832)
    ix = 
        1
    iy = 
        3
    

    【讨论】:

      【解决方案2】:
      [i j]=ind2sub(size(X),find(X==0.26832))
      

      【讨论】:

      • 奇怪,我得到 ix = [](0x1) 和 iy = [](0x1),使用 octave 3.2.4
      • 这是因为没有一个元素“完全”等于 0.26832。您可以尝试以下代码: X=[1 2 3; 4 5 6]; [i j]=ind2sub(size(X),find(X==5))
      • 对,有道理,谢谢。我对不使用 epsilon 进行 fp 比较有点怀疑。
      • findsizeind2sub 的这种组合有什么优势,而单独使用find 可以产生相同的输出?
      • 你是对的,你的解决方案更好。我赞成。当有多个输出时,我总是对“查找”的输出感到困惑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2013-02-22
      • 2015-05-13
      • 2016-04-20
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多