【发布时间】:2013-07-15 22:37:58
【问题描述】:
我将两个矩阵 A(大小为 nxn)和 B(大小为 nxm)相乘。 matlab 中最简单的方法是
n = 1000;
m = 500;
for k=1:n
A(k, :) = (1:n)+k;
end
B = rand(n, m);
C = A*B; % C of the size nxm
但是,当 n 和/或 m 太大时,此代码会占用太多内存。所以我正在寻找一个矢量化版本的数组来实现它
n = 1000;
m = 500;
B = rand(n, m);
func0 = @(k, colv) [(1:n)+k]*colv;
func1 = @(V) arrayfun(func0, 1:n, V);
func1(B)
但它不起作用。它说尺寸不匹配。有人有什么建议吗?
【问题讨论】:
-
你能再解释一下为什么你觉得
C = A * B不合适吗?
标签: matlab vectorization