2015-10-21 64 views
1

我是N = 10^6個數據點,並且想要創建(a)N×N二維矩陣A(b)並將P的值分配到三維矩陣一個3D矩陣B.對於N = 256到N = 1000,下面的工作Matlab:用於3D矩陣的內存不足

A = 0.1*eye(N,N); 
B(:,:,1) =A;  

但是,對於更高的值N,我越來越內存錯誤。所以,我發現我可以創建一個稀疏矩陣,而不是使用眼睛作爲A = 0.1*eye(N,N);但是,然後B不能被創建,因爲該操作不適用於稀疏。我如何找到出路?謝謝

回答

1

您可以使用單元陣列。

B=cell(1000000); 
B{1}=A; 

這隻適用於內存存儲。我不知道你最終會做什麼。 希望這會有所幫助。

+0

謝謝您的回覆,請接受我的道歉,不予解釋。矩陣A用於計算卡爾曼濾波器中的協方差,B是應用卡爾曼平滑器後得到的平滑協方差矩陣。該解決方案在這種情況下不起作用,並將錯誤作爲cat錯誤引發。 –