matlab绘制三维图形(mesh,surf,contour,fimplicit3)⽬录
参考学习b站:
mesh函数
绘制出在某⼀区间内完整的⽹格图
mesh(X,Y,Z)的⽤法,其中X是n维向量,Y是m维向量,Z是m*n维的矩阵:
X=[1,2,4]
Y=[3,5]
Z=[4,8,10;5,9,13]
mesh(X,Y,Z)%(X(j),Y(i),Z(i,j))是线框⽹格线的交点的坐标
xlabel('x轴');ylabel('y轴');zlabel('z轴');%加上坐标轴的标签
mesh(Z)的⽤法,其中Z是m*n维的矩阵:
Z=[4,8,10;5,9,13]
mesh(Z)
xlabel('x轴');ylabel('y轴');zlabel('z轴');%加上坐标轴的标签
%等价于
X=1:3
Y=1:2
Z=[4,8,10;5,9,13]
mesh(X,Y,Z)
xlabel('x轴');ylabel('y轴');zlabel('z轴');%加上坐标轴的标签
mesh(X,Y,Z)中,X中元素不是按照从⼩到⼤排序的时候:
X=[1,10,4]
Y=[3,5]
Z=[4,8,10;5,9,13]
mesh(X,Y,Z)
hidden off %可以看到背部的图像,不会遮挡(默认是看不到的)xlabel('x轴');ylabel('y轴');zlabel('z轴');%加上坐标轴的标签
mesh(X,Y,Z)的⽤法,其中X、Y和Z都是m*n维的矩阵
X = [1,2,4;1,2,4]
Y = [3,3,3;5,5,5]
Z = [4,8,10;5,9,13]
mesh (X ,Y ,Z ) % (X (i ,j ), Y (i ,j ), Z (i ,j ))是线框⽹格线的交点的坐标
xlabel ('x 轴'); ylabel ('y 轴'); zlabel ('z 轴'); %
加上坐标轴的标签
例⼀:
绘制 的图像 ,其中x和y都位于[0,5]之间
(注意使⽤点运算符号)
n = 11;
tem = linspace (0,5,n ); % 将[0,5]这个区间等分为n 个点(等差数列的形式)
% B = repmat (A ,m ,n ),将矩阵 A 复制 m×n 块
% 即把 A 作为 B 的元素,B 由 m×n 个 A 平铺⽽成
x = repmat (tem ,n ,1);
y = repmat (tem',1,n );
z = x .^2 - y .^2; % 要使⽤点运算符号
mesh (x ,y ,z )
xlabel ('x 轴'); ylabel ('y 轴'); zlabel ('z 轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕⾼宽⽐,使得⼀个三维对象的旋转不会改变坐标轴的刻度显⽰
z =x −2y 2
例⼆:
绘制 的图形,其中x和y都位于[-5,5]之间
[x ,y ] = meshgrid (-5:0.5:5); % 快速⽣成⽹格所需的数据
tem = sqrt (x .^2+y .^2)+1e-12; % 防⽌除0⽽缺失点,因此加上⼀个极⼩值
linspace函数调用的格式为z = sin (tem )./tem ; % 如果不对tem 处理,那么z 的最中间的⼀个值 0/0 = NaN
mesh (x ,y ,z )
xlabel ('x 轴'); ylabel ('y 轴'); zlabel ('z 轴'); % 加上坐标轴的标签
axis vis3d % 冻结屏幕⾼宽⽐,使得⼀个三维对象的旋转不会改变坐标轴的刻度显⽰
z =x +y 22sin (x +y 22)
meshc函数:除了mesh函数图形外,还在xy平⾯上绘制曲⾯的等⾼线
meshc(x,y,z)
xlabel('x轴');ylabel('y轴');zlabel('z轴');%加上坐标轴的标签
axis vis3d %冻结屏幕⾼宽⽐,使得⼀个三维对象的旋转不会改变坐标轴的刻度显⽰
surf函数
绘制出在某⼀区间内完整的曲⾯图,surf函数和mesh函数的的调⽤格式基本相同,两者的区别为mesh绘出彩⾊的线,surf绘出彩⾊的⾯例⼀的对⽐:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论