matlab占用太多内存_matlab程序运行占用内存较高,造成机子死机如何简化程序?...

本文探讨了MATLAB程序运行时内存占用过高的问题,通过分析代码发现,主要消耗内存的部分在于多次读取地理TIFF文件并进行大量计算。针对此情况,提出了可能的解决方案,包括优化循环结构、减少中间变量和使用更高效的数据处理方法,以降低内存使用并避免程序导致的系统死机。
摘要由CSDN通过智能技术生成

symsb_sd_hhc1d_vvklTHETA=geotiffread('theta1111.tif');HH=geotiffread('hh1111.tif');VV=geotiffread('vv1111.tif');p=nan(size(THETA));i1=inversion1();i2=d_hh-i1;i3=[c1,d_hh,...

syms b_s d_hh c1 d_vv k l

THETA=geotiffread('theta1111.tif');

HH=geotiffread('hh1111.tif');

VV=geotiffread('vv1111.tif');

p=nan(size(THETA));

i1=inversion1();

i2=d_hh-i1;

i3=[c1,d_hh,d_vv];

for n=1:size(THETA,1)

for o=1:size(THETA,2)

theta=THETA(n,o);

hh=HH(n,o);

vv=VV(n,o);

i4=[theta,hh,vv];

i=subs(i2,i3,i4);

j1=solve(i(1,1),b_s);

j2=solve(i(2,1),b_s);

j=[real(j1);real(j2)];

if ~isnan(theta) && ~isnan(vv) && ~isnan(hh)

if ~isempty(j1) && ~isempty(j2)

l1=solve(j(1,1)==1+1.5995*k+1.861*k^3,k);

l2=solve(j(2,1)==1+1.5995*k+1.861*k^3,k);

l=[l1;l2];

elseif ~isempty(j1) && isempty(j2)

l=solve(j==1+1.5995*k+1.861*k^3,k);

elseif isempty(j1) && ~isempty(j2)

l=solve(j==1+1.5995*k+1.861*k^3,k);

end

for m=1:numel(l)

if isreal(l(m,1)) && l(m,1)>=0.1 && l(m,1)<0.45

p(n,o)=l(m,1);

disp(num2str([n,o]));

end

end

end

end

end

HH和VV必须都算出来,才能进行下一步。

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值