gpt4 book ai didi

matlab - MATLAB 中使用 spfun 的稀疏矩阵乘法

转载 作者:行者123 更新时间:2023-12-02 09:29:31 24 4
gpt4 key购买 nike

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

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

谢谢。

最佳答案

你试过吗

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了解更多信息。

关于matlab - MATLAB 中使用 spfun 的稀疏矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com