爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 赵阿哥

[程序设计] 求用matlab做质量流函数图的程序

[复制链接]

新浪微博达人勋

发表于 2012-10-28 13:38:20 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 13:38:56 | 显示全部楼层
haohaoai 发表于 2012-10-28 12:42
这个程序貌似不对吧

是大气动力学老师给的示例程序啊,有啥不对的地方吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 14:44:20 | 显示全部楼层
赵阿哥 发表于 2012-10-28 13:28
后来我用这个contourf(lev,la,M)作图,其中lev为压强,la为纬度,M为质量流函数得到这样的图。求大侠,到底 ...

你这横纵坐标就反了啊,再有你质量流函数肯定数据错了啊,怎么可能就一个环流圈呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-28 14:45:01 | 显示全部楼层
赵阿哥 发表于 2012-10-28 13:33
我不会用grads,昨天在官网上下了个,不知道怎么安装,求用matlab怎么做

我没用matlab编过,你参照我写的fortran程序编一下,意思应该都差不多的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-28 22:16:14 | 显示全部楼层
Aires 发表于 2012-10-28 14:45
我没用matlab编过,你参照我写的fortran程序编一下,意思应该都差不多的

我看了你的fortran程序,我修改了一下我的,但还是得不出正确的图。fortran能不能直接读nc文件啊?我想用你的程序做一下,需要做什么改动吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-29 12:17:11 | 显示全部楼层
赵阿哥 发表于 2012-10-28 22:16
我看了你的fortran程序,我修改了一下我的,但还是得不出正确的图。fortran能不能直接读nc文件啊?我想用 ...

应该是可以读的,但是我没弄这么深入。@wlzhongouc
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-29 22:13:09 | 显示全部楼层

程序里这一句什么意思fid1 = netcdf(file1),运行时matlab说有错误
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-29 22:14:36 | 显示全部楼层
Aires 发表于 2012-10-29 12:17
应该是可以读的,但是我没弄这么深入。@wlzhongouc

你能帮我看看我的程序吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-10-29 22:23:02 | 显示全部楼层
Aires 发表于 2012-10-29 12:17
应该是可以读的,但是我没弄这么深入。@wlzhongouc

你能帮我看看程序吗,这是我写的
  1. clear
  2. clc
  3. close all;
  4. aa= ncread('vwnd.mon.mean.nc','vwnd');
  5. b=[];
  6. c=[];
  7. d=[];
  8. e=[];
  9. PI=3.1415;
  10. g=9.8000;
  11. a=6371000.0000;
  12. c=mean(aa,4);      %对时间平均
  13. e=mean(c,1);       %对经度平均
  14. lev= ncread('vwnd.mon.mean.nc','level');
  15. la= ncread('vwnd.mon.mean.nc','lat');
  16. for i=1:73         %向上求质量流函数M1
  17.     M1(i,1)=0;
  18.     for j=2:17
  19.         M1(i,j)=M1(i,j-1)+2*PI*a*cos(la(i)*PI/180.0)*(e(1,i,j)+e(1,i,j-1))/(2*g)*(lev(j)-lev(j-1));
  20.     end
  21.    
  22. end
  23. for i=1:73         %向下求质量流函数M2
  24.     M2(i,17)=0;
  25.     for j=17:-1:2
  26.         M2(i,j-1)=M2(i,j)+2*PI*a*cos(la(i)*PI/180.0)*(e(1,i,j)+e(1,i,j-1))/(2*g)*(lev(j-1)-lev(j));
  27.     end
  28.    
  29. end
  30. for i=1:73        %加权平均后的质量流函数
  31.     for j=1:17
  32.         M(i,j)=lev(j)/lev(1)*M1(i,j)+(1-lev(j)/lev(1))*M2(i,j);
  33.     end
  34. end
  35. M(:,1)=0;
  36. M(:,17)=0;
  37. M(1,:)=0;
  38. M(73,:)=0;
  39. for i=1:73         %构造和M大小相同的矩阵
  40.     for j=1:17
  41.         bb(i,j)=la(i);
  42.         cc(i,j)=lev(j);
  43.     end
  44. end
  45. contourf(bb,cc,M);
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-31 09:32:22 | 显示全部楼层
赵阿哥 发表于 2012-10-28 13:28
后来我用这个contourf(lev,la,M)作图,其中lev为压强,la为纬度,M为质量流函数得到这样的图。求大侠,到底 ...

这显然不对。。。。。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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