Out of Memory Error: How can one get around this?
5 次查看(过去 30 天)
显示 更早的评论
Hi,
So I ran my code and in one of the lines it said I had no memory left. The actions on the line consisted of multiplying two matrices, one is 65000+ x 3 in dimension and the other is the transpose of the first. I would assume this data is too large to compute. Is there any possible way of getting around this?
I was thinking about using functions such as fopen, fread, textscan after looking in the documentation. Would this solve my problem? Any help would be greatly appreciated.
Thanks, Ian
0 个评论
采纳的回答
Oleg Komarov
2011-5-30
beta = X\y
From the reference below an example (fit y = b_1 + b_2*t + b_3*t^2 + b_4*t^3):
t = [1900;1910; 1900; 1930; 1940; 1950; 1960; 1970; 1980; 1990];
y = [75.9;91.9;105.7;123.2;131.6;150.6;179.3;203.2;226.5;249.6];
% Build X
X = bsxfun(@power,t,0:3);
b = X\y;
10 个评论
更多回答(4 个)
Walter Roberson
2011-5-30
Is that multiplication
(3 x 65000) * (65000 x 3)
thus returning a 3 x 3 final matrix?
Or is it
(65000 x 3) * (3 * 65000)
thus returning a 65000 x 65000 final matrix?
If you are expecting a 65000 x 65000 output, then where did you intend to store that array? If the elements were double precision, that would be a 31 1/2 GB matrix.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Distribution Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!