24小时热门版块排行榜    

查看: 1557  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

ghlzt

新虫 (初入文坛)

[交流] MATLAB 存储10个G 以上数组怎么办? 已有15人参与

我现在有三个MAT文件,三个里面分别存放着具有相同行的数组,大小分别有2G,4G,5G。 我现在想把这三个MAT文件里面的数组合并成一个新的数组,那么这个数组大小应该就有11个G了,存储到一个新的MAT文件中,但是如果load每一个MAT文件的话,电脑内存直接卡机了。怎么处理呢?另外请假一个问题,虚拟内存有什么用呢?我这个好像虚拟内存挺大的,虚拟内存里面可以存储什么这么大的一个数组吗?
这个是电脑内存
memory
Maximum possible array:        9934 MB (1.042e+10 bytes) *
Memory available for all arrays:        9934 MB (1.042e+10 bytes) *
Memory used by MATLAB:         880 MB (9.230e+08 bytes)
Physical Memory (RAM):       12205 MB (1.280e+10 bytes)
虚拟内存
>> feature('memstats')
    Physical Memory (RAM):
        In Use:                             3280 MB (   cd02b000)
        Free:                               8924 MB (  22dcc5000)
        Total:                             12204 MB (  2facf0000)
    Page File (Swap space):
        In Use:                             3868 MB (   f1c5d000)
        Free:                               9936 MB (  26d093000)
        Total:                             13804 MB (  35ecf0000)
    Virtual Memory (Address Space):
        In Use:                             4221 MB (  107d7a000)
        Free:                           134213506 MB (7ffef8266000)
        Total:                          134217727 MB (7ffffffe0000)
    Largest Contiguous Free Blocks:
         1. [at   1800c2000]           134170621 MB (7ff47fd9c000)
         2. [at 7ff5fffff000]               23220 MB (  5ab451000)
         3. [at 7ffbc565c000]               17321 MB (  43a984000)
         4. [at   140029000]                1023 MB (   3ffd7000)
         5. [at   11c000000]                 576 MB (   24000000)
         6. [at   104000000]                 128 MB (    8000000)
         7. [at   110000000]                 128 MB (    8000000)
         8. [at 7ffbb0000000]                  74 MB (    4a70000)
         9. [at    b3ff0000]                  64 MB (    4000000)
        10. [at 7ffbab6aa000]                  46 MB (    2e46000)
                                            ======= ==========
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蜉蝣于天地

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
试试看load 有没有see also选项,可能有不会一次性读取所有内容的函数。
非宁静无以致远,非淡泊无以明志
5楼2016-01-01 17:02:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

mygt_hit

专家顾问 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
这数据确实大啊。分开存放到一个个小文件里不行吗?
知其然,知其所以然。
2楼2015-12-30 22:17:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

兜兜妖神

铜虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
最好是能变换处理公式,或者将矩阵分割的更小最好,现在限制你运算的是硬盘的IO速度了。
你说的虚拟内存是win将一部分硬盘作为内存开始用,如果你硬盘不是固态的话,由于机械硬盘读写速度小了内存条读写速度一个数量级,所以如果强行读取数据,在进行矩阵运算的时候会进一步变慢。

发自小木虫Android客户端
3楼2015-12-30 23:28:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangww2011

木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
没啥好办法 除非你换个内存大的电脑。
虚拟内存是把硬盘中的一部分在你内存不够的时候当内存来用的,速度奇慢无比。
6楼2016-01-01 19:30:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见