Matlab二元函数图像绘制 | 您所在的位置:网站首页 › y等于2-x的图象 › Matlab二元函数图像绘制 |
文章目录
Matlab二元函数图像绘制plot3函数的基本用法fplot3函数基本用法进阶用法绘制二元函数图像
Matlab二元函数图像绘制
在讲二元函数图像绘制之前,先讲解plot3与fplot3的实际用法,之后再讲解二元函数图像绘制,有需要的同学可直接跳转查看。 plot3函数的基本用法本节通过循序渐进的方法,先介绍简单的plot3用法,接着再一步一步进阶难度,并且在代码中给出每块代码的功能以及使用方法,以帮助大家更快的学习使用。 实例1:绘制三维直线 % 给定x、y、z的数值 x = [1,2,3]; y = [3,4,5]; z = [1,2,3]; plot3(x,y,z) % axis函数,指定x、y、z轴的上下界 axis([0,3,2,6,0,3]) % 标志x、y、z轴的轴名 xlabel("x轴") ylabel("y轴") zlabel("z轴") % 开启网格线 grid on运行结果如下图所示: 实例2:绘制螺旋线 可以看到,xyz都是由t参数决定的,因此在使用绘制曲线使用plot3函数之前,需要先为t定义。 % 为t定义,在matlab里等效于为t建立矩阵,在这里有两种办法,一种是利用matlab自带的linespace函数,一种是使用matlab语法建立关于t的矩阵 % linspace(0,10*pi,1000) t = 0:0.01*pi:10*pi x = sin(t) + t.*cos(t); y = cos(t) - t.*sin(t); z = t; plot3(x,y,z) axis([0,40,0,40,0,40]) grid on xlabel("x轴") ylabel("y轴") zlabel("z轴")这里用到了矩阵的点乘,关于矩阵乘法的知识点,大家可以在这里查看 https://www.cnblogs.com/fx-bk/p/10818371.html 可以很轻易的看出,上面两个例子给出的都是xyz的一维矩阵形式,一维矩阵的长度取决于t的矩阵长度。当xyz的矩阵形式从一维升级到多维时,plot3函数就可以画出多条曲线,由此引出今天的第3个实例。 实例3:在空间上绘制三条螺旋线 综上所述,当需要绘制三条螺旋线的时候,xyz的为3*300矩阵(300为t一维t矩阵的列数) % 首先定义t的矩阵,这次使用linespace函数 t = linspace(0,10*pi,300); x = [sin(t) + t.*cos(t),sin(t) + t.*cos(t),sin(t) + t.*cos(t)]; y = [cos(t) - t.*sin(t) ,cos(t) - t.*sin(t) + 1,cos(t) - t.*sin(t) + 2]; z = [t,t,t]; plot3(x,y,z); grid on xlabel("x轴") ylabel("y轴") zlabel("z轴")结果如下: 在讲fplot3之前,先跟大家讲一下fplot3与plot3的区别,两者都可以用来绘制图形,但plot3针对任意变量x与y都可以绘制,而fplot则需要定义一个函数才可以实现绘制。 fplot3函数基本用法在正式使用fplot3函数之前,我们得先了解的fplot3函数的语法: fplot3(funx,funy,funz,tlims);funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。 tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5]。 实例4:绘制墨西哥帽顶曲线 % 由于fplot3需要输入定义域 % 因此我们不需要像plot3那样 % 重新为参数t进行定义 % 但由于我们在使用t之前没有为t % 进行定义,因此需要在加上@(t)的操作 xt = @(t) exp(-t/10).*sin(5*t); yt = @(t) exp(-t/10).*cos(5*t); zt = @(t) t; fplot3(xt, yt, zt, [-12, 12]) grid on xlabel("x轴") ylabel("y轴") zlabel("z轴")这样子我们的图像就绘制出来啦: 进阶用法曲线颜色 不管是plot3还是fplot3都可以对图像的颜色进行改变。以下介绍两个改变图像颜色的方法: 方法一: 'r’表示内置的颜色红色,类似的还有: ‘m’ 粉红 ‘g’ 绿色 ‘c’ 青色 ‘b’ 兰色 ‘w’ 白色 ‘y’ 黄色 ‘k’ 黑色 方法二:使用数组自定义颜色,注意三个分量取值在0~1之间,表示红、绿、蓝三原色的混合比例 曲线标识符 绘制二元函数图像有了上面的基础后,我们对matlab绘图有了更加深刻的理解。现在便来讲一下二元函数图像的绘制。 二元函数在matlab使用meshgrid函数绘制: 语法: [X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。 [X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。 鉴于很多同学可能不太理解二维网格的概念,先给大家讲一下二维网格 二维网络 % 使用向量x定义的x坐标和向量y定义的y坐标创建二维网格坐标 x = 1:3; y = 1:5; [X,Y] = meshgrid(x,y) % 根据上述语法可知 X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5在二维网格上计算表达式 x^2 + y^2 X.^2 + Y.^2 ; ans = 5×3 2 5 10 5 8 13 10 13 18 17 20 25 26 29 34绘制曲面图 绘制图像 y = x1^2 + x2^2; x1属于[0,10];x2属于[0,10]; 使用均匀分布的x坐标和y坐标在曲线[0,10]内创建二维网格 x1 = 0:0.01:10; x2 = x1; [X1,X2] = meshgrid(x1); y = X1.^2 + X2.^2; surf(x1,x2,y)绘制结果如图所示: 绘制的关键在于清楚理解meshgrid函数的使用方法。 |
CopyRight 2018-2019 实验室设备网 版权所有 |