我有一个 N×2 矩阵 A,其中包含我想从二维矩阵 B 中获取的元素索引,A 的每一行都是我想要获取的 B 元素的行索引和列索引。我想将所有这些元素堆叠成一个 N x 1 向量。
B是一个方阵,所以我目前用的是
N = size(B,1);
indices = arrayfun(@(i) A(i,1) + N*(A(i,2)-1), 1:size(A,1));
result = B(indices);
但是,虽然它有效,但它正在探索成为一个巨大瓶颈,我需要加速代码以使其有用。
达到相同结果的最快方法是什么?
最佳答案
怎么样
indices = [1 N] * (A'-1) + 1;
关于performance - 在 MATLAB 中获取给定索引矩阵的元素的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219233/