matlab等高线求助!急急急

来源:百度知道 编辑:UC知道 时间:2024/04/29 01:58:25
x=[109.4 110.2 103.7 108 112.9];
y=[35.8 36.6 36 34.3 34.7];
z=[1.65 3.02 6.27 0.78 1.16];
xx=reshape(x,5,1);
yy=reshape(y,5,1);
zz=reshape(z,5,1);
contour(xx,yy,zz,100);
为什么不显示等高线呢?请高手赐教!

而对于这个:>> [r]=[0.85 0.85 0.85 0.85 0.85 0.85 0.93 0.93 0.93 0.93 0.93 0.93 0.98 0.98 0.98 0.98 0.98 0.98];
>> [m]=[0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5];
>> [k]=[3.76 2.84 1.41 1.10 1.06 0.88 2.75 1.37 1.08 0.97 0.79 0.40 1.2 0.92 0.74 0.57 0.45 0.28];
>> contour(r,m,k,100);
在加入:
>> rr=reshape(r,6,3);
>> mm=reshape(m,6,3);
>> kk=reshape(k,6,3);
然后再:
>> contour(rr,mm,kk,100)后,却成功了。上面那个为什么不行,这个却行?

你的数据不对。
首先contour要求的x,y是由meshgrid生成的。
你看一下你的第一题:
[r]=[0.85 0.85 0.85 0.85 0.85 0.85 0.93 0.93 0.93 0.93 0.93 0.93 0.98 0.98 0.98 0.98 0.98 0.98];
>> [m]=[0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5 0 0.1 0.2 0.3 0.4 0.5];
>> [k]=[3.76 2.84 1.41 1.10 1.06 0.88 2.75 1.37 1.08 0.97 0.79 0.40 1.2 0.92 0.74 0.57 0.45 0.28];
>> rr=reshape(r,6,3);
>> mm=reshape(m,6,3);
你输出rr,mm看一下。
它们是很规则的数据。相当于把你的区域分成好多个矩形网格,你的kk就是这些网格上的点。

rr =
0.8500 0.9300 0.9800
0.8500 0.9300 0.9800
0.8500 0.9300 0.9800
0.8500 0.9300 0.9800
0.8500 0.9300 0.9800
0.8500 0.9300 0.9800
mm =
0 0 0
0.1000 0.1000 0.1000
0.2000 0.2000 0.2000
0.3000 0.3000 0.3000
0.4000 0.4000 0.4000
0.5000 0.5000 0.5000

但是你的本题中
x=[109.4 110.2 103.