matlab如何画三维图

matlab如何画三维图,第1张

1、plot3三维曲线图。

启动MATLAB,新建脚本(m文件),在脚本编辑区输入以下代码,然后保存运行后,看到三维曲线图。

close all;clear all;clc

z=linspace(0,10,101);

x=sin(z);y=cos(z);

plot3(x,y,z,'g','LineWidth',2)

hold on

plot3(x,y,z,'p','MarkerSize',10)

其中,linspace(a1,a2,N) 是生成间距为(a2-a1)/(N-1)、个数为N的数组的命令。

2、mesh三维网格图。

在脚本编辑区紧接着输入以下代码,保存运行后,看到三维网格图。

[a,b,c]=peaks(50);

figure(2)

mesh(a,b,c)

axis tight

其中,peaks(N)是生成一个凹凸有致的曲面,包含三个局部极大点及三个局部极小点的函数,其方程式略。

3、meshc除了生成网格图外,还在xy平面生成曲面的等高线。

将第二步中的mesh(a,b,c)改为meshc(a,b,c),然后保存运行后,看到三维网格图+等高线的效果。

4、meshz除了生成网格图外,还在曲线下面加上个矩形垂帘。

将第三步中的meshc(a,b,c)改为meshz(a,b,c),然后保存运行后,看到三维网格图+垂帘的效果。

5、surf三维着色曲面图。

将第四步中的meshz(a,b,c)改为surf(a,b,c),然后保存运行后,看到三维着色曲面图。

6、surfc同时画出三维着色曲面图与等高线。

将第五步的surf(a,b,c)改为surfc(a,b,c),然后保存运行后,看到三维着色曲面图+等高线的效果。

7、surfl带光照的三维着色曲面图图。

将第六步的surfc(a,b,c)改为surfl(a,b,c),然后保存运行后,看到带光照的三维着色曲面图。

8、添加shading interp去掉网格曲线,添加xlabel等坐标说明,添加title标题说明。输入以下代码,保存运行后,得到三维效果。

[a,b,c]=peaks(50);

figure(2)

surfl(a,b,c)

shading interp

xlabel('X');ylabel('Y');zlabel('Z')

title('peaks+surfl')

axis tight

方法/步骤
作为演示,以二元函数图 z = xexp(-x^2-y^2) 为例讲解基本 *** 作,首先需要利用meshgrid函数生成X-Y平面的网格数据,如下所示:
% 生成二维网格数据
xa = -2:02:2;
ya = xa;
[x,y] = meshgrid(xa,ya);
此外,需要计算纵轴数据(z轴),如下所示:
% calculate z data
z = xexp(-x^2 - y^2);
在计算出(x,y,z)数据后,就可以使用三维绘图函数mesh绘制三维曲面图,如下所示:
mesh(x,y,z);
整个完整代码如下所示,点击运行按钮即可看图像。

data=[A(:,:,1) A(:,:,2) A(:,:,3)A(:,:,81) ];

在定义的时候,抽取元素形式为A=B(:,:,i)。matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。

前者可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。

扩展资料:

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) n + (j − q)) t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) m + (i − p)) t

存放该数组至少需要的单元数为(m-p+1) (n-q+1) t 个字节

参考资料来源:百度百科-二维数组


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13042080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存