Matlab,内存问题

Matlab, memory issues

我已经阅读了几个关于同一主题的类似问题,但我仍然没有设法解决我的问题。 一段时间以来,我遇到了内存不足的错误;

这很奇怪,因为我一直在 Matlab 上工作,即使使用比现在更大的矩阵和数据(约 300 万行),而且以前从未遇到过这个问题;相反,从昨天开始,即使我尝试制作一个简单的零矩阵,我也会收到这个错误。 顺便说一句,正如我告诉过你的,我在这里看到了 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 位机器。 如果我输入 memory 命令,我会得到:

有人知道我必须做什么吗?我有一种感觉,它与计算机有关,而不是与 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。

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