声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1843|回复: 5

[绘图技巧] [求助]Matlab中绘制的等值线图偏离了坐标原点0怎么办啊?

[复制链接]
发表于 2012-2-12 13:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
先贴上代码吧
  1. x=linspace(0,1000,100);
  2. y=linspace(-100,100,100);
  3. [X,Y]=meshgrid(x,y);
  4. y1=0.04*X.*(1+0.0001*X).^(-0.5);%y1,z1为扩散参数
  5. z1=0.016*X.*(1+0.0003*X).^(-1);
  6. Q=1000;u=2;H=5;z=0; h =1; %模型计算参数
  7. c1=1;c2=2;c3=3; %警戒浓度
  8. C=Q./(3.14*u*y1.*z1).*exp(-Y.^2./(2*y1.^2)).*(exp(-(z-H)^2./(2*z1.^2))+exp(-(z+H)^2./(2*z1.^2)));%高斯烟羽扩散模型

  9. [G]=contour(x,y,C,[c1,c2,c3]) ;
  10. clabel(G)
  11. grid on
  12. xlabel('x'),ylabel('y')
  13. title('特定浓度的等值线C');
  14. grid on
  15. hold on
复制代码

结果绘制出来的图是这样的 等值线图.jpg
但是我想绘制的图是类似与这样的图:

想要绘制的图

想要绘制的图

也就是说,我上面的代码绘制的等值线图偏离的坐标原点0,自己查了下原因,原以为问题出在:计算出来的C值中有NaN,所以在计算C值之前对它的分母,也就是(3.14*u*y1.*z1),加上了个esp,但是得到的图形还是偏离了坐标原点0的,而且得到的C值偏大了很多了,最大值为9(原来最大值4,这个才是对的)。

现在不知道怎么解决了,求助各位大神帮帮啊,小女子感激不尽啊!
回复
分享到:

使用道具 举报

发表于 2012-2-13 19:06 | 显示全部楼层
很可能是C的公式你编程出错。。。要不你把C的求解公式截图上来。。

点评

赞成: 5.0
赞成: 5
  发表于 2012-2-14 01:05
发表于 2012-2-13 15:09 | 显示全部楼层
Ref: 5.建议提问的网友分清 编程问题 和 专业问题 http://forum.vibunion.com/thread-36746-1-1.html
6.提问的智慧!!!!(发帖前请认真阅读) http://forum.vibunion.com/thread-21991-1-1.html
 楼主| 发表于 2012-2-13 10:51 | 显示全部楼层
回复 3 # ChaChing 的帖子

谢谢元老的回复和指正啊。我重新试验了一下,您说的“有无加eps应该都一样的, 仅差有无nan, max(C(:))都是3.5218”是对的,之前可能数据操作有误,自己没检查出来,导致C的最大值有差异。
产生的C值得到的图和预期的图不一样,那也应该就是C值可能不是预期的,但是计算C值的表达式检查了没有错误啊,其中的Q这些参数都是和给的实验数据相差无几啊,而且我换了其他数据,计算出来的图还是离原点有偏差,是不是计算出来的C值前十几列为0导致的啊? 请指教啊
发表于 2012-2-13 01:28 | 显示全部楼层
有无加eps应该都一样的, 仅差有无nan, max(C(:))都是3.5218
怎感觉是LZ產生的C可能不是LZ预期的
 楼主| 发表于 2012-2-12 20:37 | 显示全部楼层
自己顶一下了,大师们,求助啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 14:39 , Processed in 0.572906 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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