performance - 在 MATLAB 中获取给定索引矩阵的元素的最快方法

标签 performance matlab vectorization

我有一个 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/

相关文章:

java - 性能测试

matlab - OpenCV 2.3 相机标定

python - 在Python或Matlab中数值求解超越方程

python - numpy 数组的逻辑迭代

javascript - PerformanceResourceTiming.responseStart 和 PerformanceResourceTiming.requestStart 对于状态正常的 http 请求都是 0

performance - DirectX9 - 高效绘制 Sprite

image - 在Matlab中仅将黑色转换为白色

R:将 FUN 应用于数组的 kxk 子部分

R日期时间对齐并填充值

java - 如何提高 MappedByteBuffer 的性能以适应我的用例?