我有以下类似的问题: Matlab 不优化以下内容吗?
但这是一个更难的变体,并且那里建议的解决方案不起作用。
我有一个非常长的矩阵 nxr V、一个非常长的矩阵 W nxs 和一个矩阵 A rxs,它是稀疏的(但尺寸非常大)。
我期待 Matlab 对以下内容进行优化,这样我就不会遇到内存问题:
A./(V'*W)
但似乎 Matlab 实际上正在尝试生成完整的 V'*W 矩阵,因为我遇到了内存不足的问题。有没有办法克服这个问题?请注意,不需要计算所有 V'*W,因为 A 的许多值都是 0。
如果可能的话,一种方法是做 A(find(A)) ./ (V'*W)(find(A));
但是如果不先计算矩阵并将其放入变量中,则无法选择矩阵的子集(在本例中为 V'*W)。
(与上一个问题的主要区别:V 和 W 不仅仅是向量,而是矩阵。)