matlab画图时只有一个点_用matlab画图时好不好使图形窗口不出现

一般out of memenry存在以下几种情况:

1、 变量需要的存储空间超过了可用的内存空间

2、 数据需要的存储空间,超过内存中最大的可用连续存储空间

3 、程序和问题求解方法的设计不周,导致内存溢出。

解决方法如下:

1、为矩阵变量预制内存而不是动态分配

在动态分配的过程中,由于开始Matlab所用的Block随着矩阵的增大而连续的为此矩阵分配内存,但是由于Block的不连续性,很有可能最开始分配的Block不能满足存储的需要,Matlab只好移动此Block以找到更大的Block来存储,这样在移动的过程中不但占用了大量的时间,而且很有可能它找不到更大的块,导致Out of Memory。而当你为矩阵变量预制内存时,Matlab会在计算开始前一次性找到最合适的Block,此时就不用为变量连续的分配内存。

比较下面两个程序:

(1)for k = 2:1000

x(k) = x(k-1) + 5;

end

(2)x = zeros(1, 1000);

for k = 2:1000

x(k) = x(k-1) + 5;

end

显然,第二个更好。最好的方法是,在程序一开始就位所有大的矩阵变量预制存存储单元。

2、尽量早的分配大的矩阵变量

Matlab使用heap method管理内存。

当在Matlab heap中没有足够的内存使用时,它会向系统请求内存。

但是只要内存碎片可以存下当前的变量,Matlab会重新使用内存。

所在在大内存变量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值