Matlab,内存问题

时间:2015-03-24 13:52:57

标签: matlab memory memory-management out-of-memory

我已经阅读了几个关于同一主题的类似问题,但我仍未设法解决我的问题。 因为有一段时间我得到了OUT OF MEMORY错误;

这很奇怪,因为我总是在Matlab上工作,即使是比现在更大的矩阵和数据(~3百万行),也从未经历过这个问题;相反,从昨天开始,即使我尝试制作一个简单的零矩阵,我也会收到此错误。 顺便说一下,正如我告诉过你的,我看到了Mathworks的推荐 http://nl.mathworks.com/help/matlab/matlab_prog/resolving-out-of-memory-errors.html以及在此处发现的一些问题。 所以我 : 1)增加了分页大小设置初始大小10000 MB,最大大小12150 MB 2)将Java堆内存增加到2025 MB 3)再次写出将矩阵分成非常小的部分的代码

我的前提是我有一个8 GB RAM的Windows 64位机器。 如果我输入内存命令,我会得到:

enter image description here

有没有人知道我该怎么办?我有一种感觉,它与计算机有关,而不是与Matlab本身有关,但我想听听比我更有经验的人的意见:)

提前谢谢!!

谢谢Rollen Dsouza对你的评论,你是对的,这是我的罪名:

%% Investigation of negative peaks

%% main

clear all
close all
clc

cd('C:\Users\jemy\Downloads\CURRENT PROJECTS\SPIKE\code');

filename= 'Du-181014_D-ch27-Spikes_TimeStamps';

load(strcat('C:\Users\jemy\Desktop\SpikeS\', filename), 'Spikes');
load(strcat('C:\Users\jemy\Downloads\CURRENT PROJECTS\SPIKE\parameters\stend_', filename));


%% Splitting matrices

dim= size(Spikes, 1);

% First quarter of the file

sub_Spikes= double(Spikes(1:round(dim/16), :));

sub_stend= stend(1:round(dim/16), :);

clear Spikes;
clear Stend;

% Window where double minima will be searched
s= sub_stend(:, 14);
e= sub_stend(:, 5);

% Inizialization of results matrices
minima= zeros(size(sub_Spikes, 1), size(sub_Spikes, 2));
dev= zeros(size(sub_Spikes, 1));

注意:当前大小(sub_Spikes)为145377x46。

1 个答案:

答案 0 :(得分:2)

您确定需要dev= zeros(size(sub_Spikes, 1))还是忘了...,1)?这是2.1134e + 10(145377 * 145377)元素,我的电脑也无法处理。 没有足够的声誉来评论。