【发布时间】:2012-05-21 21:48:49
【问题描述】:
我正在将一个 c 程序移植到 matlab 以模拟一些数学问题。我已经在 matlab 中重写了所有代码,但我发现在一个循环中花费了太多时间。我不知道是否有更好的方法来计算以下而不是使用 for 语句
我在一个结构中定义了大约 1000 个矩阵(所有维度都相同)
A{1} = 矩阵1 A{2} = 矩阵2 ... A{1000} = 矩阵1000
B是一个与A{n}维数相同的常数矩阵
我想计算 A{n} 和 B 的逐个元素生成,并将所有结果元素的总和返回给
for k=1:1000
AllSum(k) = sum(sum(A{k}.*B))
end
A的大小取决于参数,典型大小为300x300。如果我运行一次上述循环,速度还可以。但是该循环将在另一个块中执行,该块将被调用多次,因此需要很长时间才能找到所有总和。我想知道有没有什么办法可以提升它。谢谢
【问题讨论】: