【问题标题】:most efficient way to do this matrix operation matlab?做这个矩阵运算matlab的最有效方法是什么?
【发布时间】:2014-01-14 17:59:38
【问题描述】:

我想知道在matlab中是否有更有效的方法来执行以下操作

[K, L] = meshgrid(1:sh,1:sv);
for i = 1 : sv
    for j = 1 : sh
        M = score_mat_temp + a*((K-j).*(K-j) + b*(K-j)) + c*((L-i).*(L-i) + d*(L-i)) + e;
    end
end

因为现在 sv 和 sh 通常在 500 左右

非常感谢!

【问题讨论】:

  • a b c d 和 e 都是常量
  • 你想要 M 的大小是 sv-by-sh,还是像你在这里一样?
  • ...或score_mat_temp = score_mat_temp + a*...?否则,你的问题没有多大意义……

标签: matlab matrix bsxfun


【解决方案1】:

除了M 的最终值之外的所有内容都被简单地覆盖。所以计算它们是一种浪费。使用

[K, L] = meshgrid(1:sh,1:sv);
i = sv;
j = sh;
M = score_mat_temp + a*((K-j).*(K-j) + b*(K-j)) + c*((L-i).*(L-i) + d*(L-i)) + e;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2015-10-20
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多