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 onview( -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), holdplot3(xData,yData,zData,'o'), hold offxlabel( 'x' );ylabel( 'y' );zlabel( 'z' );grid onview( -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 = m