2015-11-05 97 views
0

我在Matlab中有一個矩陣問題。
我有一個100萬x100萬稀疏矩陣,我一直使用null。通常,問題是我的內存不足。我試過svds(用於稀疏矩陣的svd),但我的問題是我內存不足。 Matlab中的null()函數是否可以解決大型稀疏矩陣?如何在Matlab中計算大型稀疏矩陣的零點?

+0

一個可能更好的問題是如何在Matlab中處理內存,以便我們可以添加物理RAM或虛擬內存? –

回答

5

一般而言,矩陣的奇異值分解的酉矩陣(UV)零空間,或者是NOT稀疏即使輸入矩陣是稀疏矩陣。因此,如果嘗試使用1M乘以1M的矩陣(即使它很稀疏),則操作的輸出不是,因此內存不足。

你能做什麼?
如果你的輸入矩陣有一個特定的結構(除了它的稀疏性),你可能會發現一些代數方法來利用這個結構。
你應該考慮的另一種方法是爲什麼你需要計算矩陣的零空間?你能否在沒有明確估計零空間的情況下達到相同的目標?

+0

要添加一個可以幫助您的結構示例:使用一個矩形塊對角線將允許您將問題分割爲幾個較小的矩陣,從而允許您計算空值空間 – BillBokeey

+0

好的!稀疏矩陣中每個元素的大小約爲雙倍大小的3倍。 – patrik

+0

我將如何創建塊對角線? –