【发布时间】:2018-08-09 09:04:10
【问题描述】:
我正在尝试对这几行代码进行矢量化处理,尤其是 for 循环。我的x 是一个[31374230x4] 矩阵,final.p0 是一个包含矩阵p0[1000x1000x500] 的结构。主要思想是截断分配给它的最终矩阵x(i,4)。我想避免 for 循环,它太慢了。有什么想法吗?
final.p0 = zeros(max(x(:,1)),max(x(:,2)),max(x(:,3)));
for i = 1:length(x(:,4))
final.p0(x(i,1),x(i,2),x(i,3)) = x(i,4);
end
【问题讨论】:
-
请提供一个包含少量虚拟数据的工作示例。
-
final.p0 = [50x50x100],x = [1000x4]。对于每次迭代,我想截断 final.p0,取 x1、x2、x3 的 50x50x100 值并将 x4 分配给 final.p0。
-
“少量的虚拟数据”是指人们可以复制/粘贴的一些实际数字,以及应该出现在结果中的预期实际数字。
标签: matlab performance for-loop vector vectorization