在 MATLAB 中进行重复元素矩阵乘法的最快方法?

问题描述 投票:0回答:1

给定一个矩阵

A
,我需要与另一个常数向量
B
相乘 N 次(N > 100 万)。
A
的大小为
9000x1
B
9000x1000

代码当前按以下方式评估:

for i=1:N

    A = func_temp(i); % A is 9000x1 matrix which varies with i

    %prod = A.*B; % prod is 9000 x 1000 matrix
    %sum_temp = sum(product); % sum_temp is 1 x 1000 matrix

    % Edit: suggestion by user @rahnema1
    sum_temp = A.' * B;

    % do multiple pperations with sum_temp

    result(i) = some_constant;
end

我使用 Profiler 来查看哪一行花费的时间最多,它是第二行 (prod = A.*R;)。 问题是 N 非常大,代码需要几天时间才能完成。

我即将尝试并行计算工具箱(GPU计算),但是对于我在基础版本中可以做什么有什么建议吗?

如何减少 MATLAB 中此类代码的运行时间?

performance matlab matrix-multiplication coding-efficiency
1个回答
0
投票

使用矩阵乘法运算符:

sum_temp = A.' * B;
© www.soinside.com 2019 - 2024. All rights reserved.