爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3630|回复: 2

[程序设计] MATLAB怎么提高循环效率?

[复制链接]

新浪微博达人勋

发表于 2019-10-13 16:25:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x


for ppp=1:500:tiaoshu
    tic
    lat0=latRAW(:,ppp);
    lon0=lonRAW(:,ppp);
    dqdt=dqdtRAW(:,ppp);

shuliang=size(dqdt);

for iii=1:(shuliang(1)-1)

if  (dqdt(iii)>=-6.0e-1 && dqdt(iii)<-6.0e-2)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(5,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=-6.0e-2 && dqdt(iii)<-6.0e-3) %蓝色17  0 0 1
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(15,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=-6.0e-3 && dqdt(iii)<-6.0e-4)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(25,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=-6.0e-4 && dqdt(iii)<-6.0e-5)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(35,:),'LineStyle','-','LineWidth',1.0);  
elseif (dqdt(iii)>=-6.0e-5 && dqdt(iii)<-6.0e-6)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(45,:),'LineStyle','-','LineWidth',1.0);      
elseif (dqdt(iii)>=-6.0e-6 && dqdt(iii)<0.0)%绿色50  0 1 1
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(50,:),'LineStyle','-','LineWidth',1.0);  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
elseif (dqdt(iii)>=0.0 && dqdt(iii)<6.0e-6)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(65,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-6 && dqdt(iii)<6.0e-5)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(75,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-5 && dqdt(iii)<6.0e-4)%黄色83  1 1 0
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(85,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-4 && dqdt(iii)<6.0e-3)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(95,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-3  && dqdt(iii)<6.0e-2)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(105,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-2  && dqdt(iii)<6.0e-1)%红色116  1 0 0
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(115,:),'LineStyle','-','LineWidth',1.0);
elseif (dqdt(iii)>=6.0e-1  && dqdt(iii)<=1.0e0)
     linem( [lat0(iii),lat0(iii+1)],[lon0(iii),lon0(iii+1)],'Color',mycolormap(125,:),'LineStyle','-','LineWidth',1.0);  
end

end
hold on
clear iii
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%画空间起点 终点 和 时间中点
linem( lat0(1),lon0(1),'MarkerSize',3,'Marker','o','LineStyle','none','Color',[0 0 0]);
linem( lat0(shuliang(1)),lon0(shuliang(1)),'MarkerSize',3,'Marker','square','LineStyle','none','Color',[0 0 0]);



hold on
toc
clear lat0
clear lon0
clear dqdt
clear shuliang
end
clear ppp
clear lonRAW
clear latRAW
clear dqdtRAW

%%%%%%%%%%%%%%%%%%%%%%%
这样一个循环连点成线的画图,但是我的循环效率会越来越慢,这要怎么解决啊?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-10-13 20:25:23 | 显示全部楼层
判断太多了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-10-15 11:54:00 | 显示全部楼层
直接a(a<1) = 0这种,然后把0填色为红色,这样不久好了?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表