上期介绍了创建数组的方式、meshgrid()函数、mesh()函数及一些运算符,点击文章底部“阅读全文”可跳转上篇文章。运用这些知识足够我们绘制出以任一轴或两轴为自变量的任意曲面,但当遇见如封面或下图的柱面时便无计可施。
![c79e83cf9b7a39ee05f5032210af736c.png](https://i-blog.csdnimg.cn/blog_migrate/9455a9fc6e85551339d30ca8f59cc57f.png)
上图为x^2+y^2-2x=0与x^2+z^2=4相交的图象,圆柱无限延伸的一轴与其余两轴并无关系,无法用之前的方法通过计算得出其余轴向上的坐标,因此绘制方法有些许差别,以绘制上图的代码为例。
![b8282693913c2dad0137340dd7a82e78.png](https://i-blog.csdnimg.cn/blog_migrate/5ab23db6e2a02bbe821af908bb1447cb.png)
数据处理
![4ab9a43cdc83ed5b86277349bc7e7855.png](https://i-blog.csdnimg.cn/blog_migrate/e53ebb7ac8b9f1bfe1b66c858e7913a4.png)
pi表示圆周率π
linspace()与上次说的相同,生成值域[-3,3],长度为 length(t)的数组。此处 length(t)返回数组 t 的长度,保证x,y,z三个方向的数据长度相同。
meshgrid()部分在附加的官方文档定义中有提到,这里如
X1=meshgrid(x1)中X1就等于包含 length(x1)行数列x1的矩阵。
为了方便理解我们用一个数据较短的例子:
![46acf92c9d700f5b7fc34f1b9e8fa355.png](https://i-blog.csdnimg.cn/blog_migrate/2c0bd386d86c553ebfb5fab14bf59cf6.png)
此处 t 的值为:
![ffbf2e7551bdc39fcfdf46788b4d5633.png](https://i-blog.csdnimg.cn/blog_migrate/3c27c015f20b2a54bea5ba643ed2c7ae.png)
X,Y,Z的值分别为:
![bc0e7ee7e2966141a7d703bcc46c66e5.png](https://i-blog.csdnimg.cn/blog_migrate/c0cf56a283ea24729daa5ff7a5e681c1.png)
![1f3068719d085e0ad5b398ff96d61fdb.png](https://i-blog.csdnimg.cn/blog_migrate/5fdc12bb461ff14e3c39941575966b1a.png)