2 matlab sparse-matrix elementwise-operations
我有一个密列矩阵y的大小(m,1)和稀疏矩阵x大小(m,n)。
我想使用y和 的每一列进行元素乘法x。
生成的稀疏矩阵的大小仍然为(m,n)。
Sparse matrixx加载到内存时大约为 10GB。
可以spfun帮助我以高效记忆的方式实现我的目标吗?
我很难理解它背后的逻辑。
谢谢你。
你试过bsxfun吗?
out = bsxfun( @times, x, y );
Run Code Online (Sandbox Code Playgroud)
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) );
Run Code Online (Sandbox Code Playgroud)
有关doc find更多信息,请参阅。