【问题标题】:accessing multiple elements in a matrix matlab [duplicate]访问矩阵matlab中的多个元素[重复]
【发布时间】:2016-04-19 06:43:54
【问题描述】:

如何在 matlab 中有效地访问来自不同列的元素向量 例如:

A = [1 2 5 4
     4 6 2 5
     3 6 8 9
     2 4 5 7
     2 9 4 2]

检索:(1, 1) (2,2) (3,1) (4,4) (5,3)

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用sub2ind:

    ret = [1 1;
           2 2;
           3 1;
           4 4;
           5 3];
    
    A( sub2ind(size(A), ret(:,1), ret(:,2)) )
    

    【讨论】:

      【解决方案2】:

      sub2ind 几乎肯定是要走的路,但如果你真的需要它更快,可能你会发现自己计算线性索引会更快:

      A = [1 2 5 4
           4 6 2 5
           3 6 8 9
           2 4 5 7
           2 9 4 2]
      
      ret = [1 1;
             2 2;
             3 1;
             4 4;
             5 3];
      
      n = size(A,1)
      
      A(ret(:,1) + (ret(:,2)-1)*n)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多