使用矢量化优化 Matlab 中的嵌套 for 循环

Optimize nested for loops in Matlab using Vectorization

我是 Matlab 的新手,目前正在尝试优化嵌套 for 循环,如下所示。该循环目前正在 运行ning 永远等待我的输入。

for i = 1:size(mat,1)
    for j = 1:size(mat,2)
          mat(i,j) = some_mapping(mat(i,j)+1);
    end
end

但是我找不到对其进行矢量化的方法。我试过 bsxfun 和 arrayfun 但它似乎不起作用(甚至 运行 比循环慢)。

也许我做错了。感谢您的帮助!

所建议,如果 some_mapping 只是一个 look-up-table 操作,则

mat = some_mapping( mat+1 );

备注:
- 为了使映射起作用,mat 的值必须是 [0..numel(some_mapping)-1].
范围内的整数 - some_mappingsize 不影响结果的 size,它在 sizemat 中是相同的。