【问题标题】:Extracting a vector from a matrix using vector of column indices使用列索引向量从矩阵中提取向量
【发布时间】:2024-11-08 21:35:01
【问题描述】:

我有一个矩阵

A = [ 5  2
      2  3
     -4  7 ];

和一个向量v = [1 2 1]。我想使用v 索引的列从A 中提取向量B。也就是说,B 应该是这样的

B = [ 5
      3
     -4 ];

我尝试了B = A(:,v),但没有奏效。有什么简单的方法吗?

【问题讨论】:

    标签: matlab indexing


    【解决方案1】:

    您有列下标。生成行下标并使用sub2ind 获得retrieve 所需A 元素的线性索引。

    B = A(sub2ind(size(A),1:numel(v),v))
    

    【讨论】:

    • 利用A(2,2) 可以使用A(5) 进行索引这一事实,我发现了一个稍快的2D 实现。我们可以写B = A((1:numel(v))+(v-1)*size(A,1))
    最近更新 更多