我有一個非常長的矢量1xr v
,和一個非常長的矢量w
1xs,和一個矩陣A
rxs,這是稀疏(但非常大的尺寸)。Matlab不會優化以下內容嗎?
我期待下面通過Matlab的優化,所以我不會有記憶遇到麻煩:
A./(v'*w)
,但它似乎像Matlab實際上是試圖以生成完整的v'*w
矩陣,因爲我遇到內存不足問題。有沒有辦法解決這個問題?請注意,沒有必要計算所有v'*w
,因爲A
的許多值是0
。
編輯:如果這是可能的,一個辦法做到這一點是做A(find(A))./(v'*w)(find(A));
,但你不能沒有首先計算它,並把它在選擇一個矩陣(v'*w
在這種情況下)的一個子集一個變量。
你可能想改用['spfun'(http://www.mathworks.com/help/matlab/ref/spfun.html) - 「應用功能非零稀疏矩陣元素」 –
嗯...... spfun可能是一個很好的領先者,但我不確定如何在這種情況下使用它。首先,所評估的功能不知道其所應用的矩陣單元的索引。 – kloop