matlab for 优化,for循环语句的加速优化求助!

尽量改为向量化处理,比如:

for a=1:94;

d(a)=1;

end

可以改为d(1:94)=1;如果你d在前面未定义,就直接用d=ones(1,94);

for r=1:1280;

for k=1:960;

m1(k,r)=0;

for a=1:94;

if map(k,r)==1 & a<=84;   %其中map为一幅图像的二进制图像。

mm1(a)=d(a)*50;

else

mm1(a)=d(a)*20;

end

m1(k,r)=m1(k,r)+mm1(a);

end

end

end

可以改为:

m1=zeros(1280,960);% if m1 has been defined previously, try m1(1:1280,1:960)=0;

下面的循环很麻烦,看不懂,自己考虑进行改进,其实不用这样的循环,如果没理解错的话,map里面有多少个1,就循环for a=1:94; ... ; end多少次,你可以直接算有多少个1,然后直接乘或者加就好了。

for r=1:1280

for k=1:960

for a=1:94

if map(k,r)==1 & a<=84;   %其中map为一幅图像的二进制图像。

mm1(a)=d(a)*50;

else

mm1(a)=d(a)*20;

end

m1(k,r)=m1(k,r)+mm1(a);

end

end

end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值