全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
6148 6
2016-02-13
悬赏 2 个论坛币 未解决
求助:本人的系统为 win7(32bit)+matlab2012b+物理内存4G (32bit系统识别了3.25G)
问题是:matlab运行时,我想分配700*500000的数组,总是显示内存溢出
  请高手指教,如何在matlab2012b中设置:我才能分配使用这样大的数组?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-2-13 20:47:58
700*500000约为350M,Matlab中数据用的是双精度,一个数据至少要占8个字节,如此一来,光这个数组就要占用2.8G。解决的办法是换64位机器,加大内存,加SSD,在此基础上加系统的虚拟内存。另外再试试稀疏矩阵可不可以。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-13 22:03:41
lowbrow 发表于 2016-2-13 20:47
700*500000约为350M,Matlab中数据用的是双精度,一个数据至少要占8个字节,如此一来,光这个数组就要占用2 ...
应该如何设置可以使用的内存大小
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-14 09:24:26
windows 可设置虚拟内存,但你这机器是32位的,最多4G的内存,所以不换机器能运行的可能性很小,即使能运行也估计非常慢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-14 11:37:36
刚才在我的电脑上试了一下,32位的matlab无法建立这么大的数组,但可以建立稀疏矩阵。我的电脑有10G的内存,用的32位的便携版的Matlab。
>> d=zeros(500,700000)
??? Out of memory. Type HELP MEMORY for your options.

>> d=sparse(500,700000)

d =

   All zero sparse: 500-by-700000

>>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-14 11:38:30
d=sparse(500,700000)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群