永发信息网

MATLAB out of memory,增加一个内存条可以解决这个问题吗

答案:2  悬赏:60  手机版
解决时间 2021-02-21 10:05
  • 提问者网友:半生酒醒
  • 2021-02-21 04:38
matlab 要计算一个大些的程序,总是out of memory。其他的网上教各种方法也试过了。。都解决不了问题。想增加个内存条可以解决问题吗?还是CPU的问题呢?如果增加内存条的话有什么注意事项吗?我在这方面是小白。谢谢了
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-02-21 06:04
这么说吧。
32位的MATLAB中对于一个矩阵有最大的限制,所有矩阵的总和也有限制,
你可以看一下:
a=memory
返回的内容,第一个是单个矩阵最大的限制,第二个是所有矩阵的和,第三个是MATLAB目前占有内存量。
你看一下如果上面的返回值只有几百M的话,你加内存应当是没有什么问题。
但是如果是1G以上,估计你加内存也没有什么用了。
除非你用64位的。
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-02-21 07:14
矩阵太大了,我很怀疑你的k矩阵能表示出来吗?更不要说后面的求逆及相乘的运算了。   按照你贴出来的数据,k矩阵的维数是 94507*94507,每个元素按照double类型考虑,占8个字节,则k矩阵占用的内存就是 >> 94507*94507*8/1024^3 ans =        66.545也就是66.5g,你的机器内存的确挺多了,但离这个需求还差很远吧?   这么大的矩阵,其元素都有什么样的规律?如果大多数为0,只有少量的非零元素,可以考虑使用稀疏矩阵,例如: >> k=sparse(94507,94507) k =    all zero sparse: 94507-by-94507 >> whos   name      size                   bytes  class   k     94507x94507               378044  double array (sparse)   ans       1x1                        8  double array grand total is 2 elements using 378052 bytes
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯