【问题标题】:extract 2D matrix from 3D matrix and array of indices in matlab从matlab中的3D矩阵和索引数组中提取2D矩阵
【发布时间】:2017-03-27 10:10:11
【问题描述】:

我找不到令人满意的答案。如果 A 是大小为 (m,n,k) 的 3D 矩阵,Z 是大小为 mxn(值介于 1 和 k 之间的整数)的 2D 矩阵,我想提取如下定义的 S:

for i=1:m
    for j=n
        S(i,j) = A(i,j,Z(i,j));
    end
end

有没有一种有效的(矢量化)方法来做到这一点?

提前谢谢你

【问题讨论】:

    标签: matlab matrix vectorization


    【解决方案1】:

    您可以使用linear indexing 执行此操作,如下所示:

    S = reshape(A((1:m*n).' + m*n*(Z(:)-1)), m, n);
    

    【讨论】:

    • 你在写,我压制了一个)并编辑了消息。
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2015-03-30
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多