文档库 最新最全的文档下载
当前位置:文档库 › MATLAB 画等温线

MATLAB 画等温线

MATLAB 画等温线
MATLAB 画等温线

测量到不同坐标点的高度值,如何用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 80 00 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 44 0];

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 80 00 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 44 0];

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

相关文档