2

我有一个 size 的密集列矩阵和一个ysize的(m,1)稀疏矩阵x。我想使用和 的每一列进行 逐元素乘法。 得到的稀疏矩阵仍然是大小。 稀疏矩阵加载到内存时大约为 10GB。 可以帮助我以高效记忆的方式实现我的目标吗?(m,n)
yx
(m,n)
x
spfun

我很难理解其背后的逻辑。

谢谢你。

4

1 回答 1

5

你试过吗?

out = bsxfun( @times, x, y ); 

spfun更适合于逐元素操作,您可以在其中操作 . 的每个非零元素x。它不完全适合矩阵向量元素的操作。
但是,如果您想沿着这条线做一些事情,您可以尝试:

[ii jj xij] = find(x); %// extract non-zeros of x and their locations
out = sparse( ii, jj, xij.*y(ii), size(x,1), size(x,2) );

有关doc find更多信息,请参阅。

于 2016-01-06T07:39:33.767 回答