使用矢量化优化 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_mapping
的 size
不影响结果的 size
,它在 size
和 mat
中是相同的。
我是 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_mapping
的 size
不影响结果的 size
,它在 size
和 mat
中是相同的。