sunny27 发表于 2012-2-12 13:46

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

先贴上代码吧
x=linspace(0,1000,100);
y=linspace(-100,100,100);
=meshgrid(x,y);
y1=0.04*X.*(1+0.0001*X).^(-0.5);%y1,z1为扩散参数
z1=0.016*X.*(1+0.0003*X).^(-1);
Q=1000;u=2;H=5;z=0; h =1; %模型计算参数
c1=1;c2=2;c3=3; %警戒浓度
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)));%高斯烟羽扩散模型

=contour(x,y,C,) ;
clabel(G)
grid on
xlabel('x'),ylabel('y')
title('特定浓度的等值线C');
grid on
hold on
结果绘制出来的图是这样的
但是我想绘制的图是类似与这样的图:
也就是说,我上面的代码绘制的等值线图偏离的坐标原点0,自己查了下原因,原以为问题出在:计算出来的C值中有NaN,所以在计算C值之前对它的分母,也就是(3.14*u*y1.*z1),加上了个esp,但是得到的图形还是偏离了坐标原点0的,而且得到的C值偏大了很多了,最大值为9(原来最大值4,这个才是对的)。

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

博大广阔 发表于 2012-2-13 19:06

很可能是C的公式你编程出错。。。要不你把C的求解公式截图上来。。

ChaChing 发表于 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

sunny27 发表于 2012-2-13 10:51

回复 3 # ChaChing 的帖子

谢谢元老的回复和指正啊。我重新试验了一下,您说的“有无加eps应该都一样的, 仅差有无nan, max(C(:))都是3.5218”是对的,之前可能数据操作有误,自己没检查出来,导致C的最大值有差异。
产生的C值得到的图和预期的图不一样,那也应该就是C值可能不是预期的,但是计算C值的表达式检查了没有错误啊,其中的Q这些参数都是和给的实验数据相差无几啊,而且我换了其他数据,计算出来的图还是离原点有偏差,是不是计算出来的C值前十几列为0导致的啊? 请指教啊

ChaChing 发表于 2012-2-13 01:28

有无加eps应该都一样的, 仅差有无nan, max(C(:))都是3.5218
怎感觉是LZ產生的C可能不是LZ预期的

sunny27 发表于 2012-2-12 20:37

自己顶一下了,大师们,求助啊
页: [1]
查看完整版本: [求助]Matlab中绘制的等值线图偏离了坐标原点0怎么办啊?