标签: matlab sparse-matrix elementwise-operations
我有一个大小为y的密集列矩阵(m,1)和一个大小为x的稀疏矩阵(m,n)。 我想使用y和x的每一列进行逐元素乘法 得到的稀疏矩阵的大小仍为(m,n) 加载到内存中的稀疏矩阵x大约为10GB spfun可以帮助我以记忆效率的方式实现我的目标吗?
y
(m,1)
x
(m,n)
spfun
我很难理解它背后的逻辑。
谢谢。
答案 0 :(得分:4)
您是否尝试过bsxfun?
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。
doc find