我乘以兩個矩陣A(大小nxn)和B(大小nxm)。在matlab中最簡單的方法將是如何在matlab中的arrayfun中傳遞一個數組作爲參數?
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'不足嗎? –