Matlab使用太多内存

时间:2019-04-03 09:50:10

标签: matlab

我正在使用Matlab进行一些评估,然后我想保存保存结果的结构以供将来使用。
问题:我注意到的第一件事是执行持续了太长时间,可能是8个小时,然后当我想保存结构时又可能需要2个小时。经过几次阻止和重做之后,我终于设法保存了数据的副本。我感到困惑的是该文件的大小为150GB。
过程:代码结构如下:遍历文件夹(50 000)中的 .csv文件,将其以csv格式文件读取,提取所需的列并计算数据。
我的观点:我猜想,整个迭代以及从每个文件中提取数据都需要大量缓存,随着时间的流逝,这可能会减慢该过程的速度!但是,我仍然不明白为什么最终的 .mat 文件需要这么多的内存,因为过去对于相同的数据,但是参数不同,它不需要那么多的空间来保存文件。结果。
问题/秒:是否可以在不影响结果的情况下减小最终文件的大小?我基于Matlab可能从过程中保存其他信息这一假设来提出这个问题? 代码架构:

    clc; close all; clear all; fclose('all');
result = struct('values_a', [], 'other', []);

counter = 1;
for i=1:length(dataNames)
        try
        structRead = ezread(nameOfFile, ',');
        values_a = structRead.timestamp;

        for j=1:length(values_a)
            if(strcmp(values_a(j),'N'))
                if(j==1)
                    values_a(j) = values_a(j+1);
                elseif (j==length(values_a))
                    values_a(j) = values_a(j-1);
                else
                    values_a(j) = (values_a(j-1)+values_a(j+1))/2;
                end
            end
            result(counter).values_a(j) = values_a(j);
        end
        counter=counter+1;

    catch
        counterFailed= counterFailed+1;
    end

    end
end

    save(path2save,'result','-v7.3');

0 个答案:

没有答案