matlab广州等温线地形图,MATLAB 画等温线.doc

测量到不同坐标点的高度值,如何用matlab画三维图

附上部分数据:

A=[-210.6627 -33391.1192 5.0273

-221.3052 -33387.7415 4.5969

-210.9391 -33393.0068 5.5647

-221.8901 -33390.7396 5.0077

-211.384 -33394.7093 5.6505

-222.6117 -33392.778 5.0554

-212.7074 -33397.5459 5.7381

-225.8973 -33397.5869 5.5587];

解:代码在matlab2009a版以上均可运行。

A=[-210.6627 -33391.1192 5.0273

-221.3052 -33387.7415 4.5969

-210.9391 -33393.0068 5.5647

-221.8901 -33390.7396 5.0077

-211.384 -33394.7093 5.6505

-222.6117 -33392.778 5.0554

-212.7074 -33397.5459 5.7381

-225.8973 -33397.5869 5.5587];

xData = A(:,1);

yData = A(:,2);

zData = A(:,3);

fitresult = fit( [xData, yData], zData, linearinterp);

figure( Name, 三维图 );

plot( fitresult, [xData, yData], zData );

xlabel( x );

ylabel( y );

zlabel( z );

grid on

view( -53, 50 );

试一试:

A=[-210.6627 -33391.1192 5.0273

-221.3052 -33387.7415 4.5969

-210.9391 -33393.0068 5.5647

-221.8901 -33390.7396 5.0077

-211.384 -33394.7093 5.6505

-222.6117 -33392.778 5.0554

-212.7074 -33397.5459 5.7381

-225.8973 -33397.5869 5.5587];

xData = A(:,1);

yData = A(:,2);

zData = A(:,3);

minx = min(xData);

maxx = max(xData);

miny = min(yData);

maxy = max(yData);

tx = linspace(minx,maxx);

ty = linspace(miny,maxy);

[XI,YI] = meshgrid(tx,ty);

ZI = griddata(xData,yData,zData,XI,YI);

mesh(XI,YI,ZI), hold

plot3(xData,yData,zData,o), hold off

xlabel( x );

ylabel( y );

zlabel( z );

grid on

view( -53, 50 );

.................

x=[7392 7392 7392 7392 5608 5608 5608 5608 8000 5000 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500];

y=[476 404 476 404 476 404 476 404 440 440 440 440 500 380 440 440 440 440 440 440];

z=[17.06 16.93 17.8 17.4 17.17 16.89 17.28 17.26 17.04 16.94 16.92 17.3 17.37 17.17 17.34 17.11 17.22 17.24 17.11 17.2];

minx = min(x);

maxx = max(x);

miny = min(y);

maxy = max(y);

[X,Y,Z]=griddata(x,y,z,linspace(minx,maxx),linspace(miny,maxy),v4); %插值

figure,surf(X,Y,Z) %三维曲面

...

%% Initialization.

% Convert all inputs to column vectors.

x = x(:);

y = y(:);

z = z(:);

%% Fit: fit 1.

ft = linearinterp;

opts = fitoptions( ft );

opts.Weights = zeros(1,0);

opts.Normalize = on;

[fitresult, gof] = fit( [x, y], z, ft, opts );

% Plot fit with data.

figure( Name, untitled fit 1 );

h = plot( fitresult, [x, y], z );

% legend( h, fit 1, z vs. x, y, Location, NorthEast );

% Label axes

xlabel( x );

ylabel( y );

zlabel( z );

grid on

.......................

x=[7392 7392 7392 7392 5608 5608 5608 5608 8000 5000 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500];

y=[476 404 476 404 476 404 476 404 440 440 440 440 500 380 440 440 440 440 440 440];

z=[17.06 16.93 17.8 17.4 17.17 16.89 17.28 17.26 17.04 16.94 16.92 17.3 17.37 17.17 17.34 17.11 17.22 17.24 17.11 17.2];

% Convert all inputs to column vectors.

x = x(:);

y = y(:);

z = z(:);

%% Fit: fit 1.

ft = fittype( poly22 );

opts = fitoptions( ft );

opts.Lower = [-Inf -Inf -Inf -Inf -Inf -Inf];

opts.Upper = [Inf Inf Inf Inf Inf Inf];

opts.Weights = zeros(1,0);

[fitresult, gof] = fit( [x, y], z, ft, opts );

fitresult

% Plot fit with data.

figure( Name, z );

h = plot( fitresult, [x, y], z );

% legend( h, z fit 1, z vs. x, y, Location, NorthEast );

% Label axes

xlabel( x );

ylabel( y );

zlabel( z );

grid on

view( -57.5, 42 );

.................

A=[

18467 17001 308

20177 17642 276

26852 16114 225

23785 17643 194

27823 14737 189

18906 16346 173

25981 18051 173

22046 17634 171

23238 6502 169

27696 11621 169

27700 11609 165

16607 17365 155

23146 15382 153

14405 18032 152

27232 14482 150

27380 18202 136

26591 13715 126

14074 16516 124

15801 3966 115

21684 13101 114

15255 5110 110

24580 13319 107

23325 16701 105

24065 7353 104

25021 16290 104

15952 18397 103

27346 13331 100

24685 14278 98

17414 15476 97

12778 5799 93

17044 10691 93

17981 18449 93

20983 15862 93

22605 14301 93

5451 2757 92

19041 15769 90

24003 15286 90

7100 2449 89

18413 11721 88

21475 8540 85

19007 11488 84

17008 4775 82

17079 5894 81

13855 3345 79

13920 5354 79

22193 12185 79

16569 6055 78

18993 12371 78

22965 13535 78

15517 17034 77

24631 9422 76

4153 2299 73

11702 4480 71

24153 12450 71

15007 5535 70

19569 7348 70

15087 3512 69

22846 9149 69

25461 9834 68

16823 4207 67

21766 12348 67

12625 16259 66

];

x=A(:,1);

y=A(:,2);

z=A(:,3);

minx = min(x);

maxx = max(x);

miny = min(y);

maxy = max(y);

[X,Y,Z]=griddata(x,y,z,linspace(minx,maxx),linspace(miny,maxy),v4); %插值

figure,surf(X,Y,Z) %三维曲面

...

%% Initialization.

% Convert all inputs to column vectors.

x = x(:);

y = y(:);

z = z(:);

%% Fit: untitled fit 1.

ft = linearinterp;

opts = fitoptions( ft );

opts.Weights = zeros(1,0);

opts.Normalize = on;

[fitresult, gof] = fit( [x, y], z, ft, opts );

% Plot fit with data.

figure( Name, fit 1 );

h = plot( fitresult, [x, y], z );

% legend( h, fit 1, z vs. x, y, Location, NorthEast );

% Label axes

xlabel( x );

ylabel( y );

zlabel( z );

grid on

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值