MATLAB入门学习

Posted GraceSkyer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB入门学习相关的知识,希望对你有一定的参考价值。

今天学三维作图 (*^__^*)……

 

三维曲线作图

用到的命令:plot3

基本格式:plot3(x,y,z,s)

这里要画曲线,你需要知道该曲线的参数方程
x=x(t),y=y(t),z=z(t)

然后其他就和二维的情况一样了

来,做个示范~

t=(0:0.02:2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,\'b-\');
box on;
legend(\'example\');

 

2Y916D0]`T}RYS8Y8U@18}Q_thumb[2]这里可以改变观察视角~~~

 

 

或者在命令栏里使用

view来改变视角

view([x,y,z])设置观察点的直角坐标

view([az,el])设置观察点的方向角和俯视角

CI3CS3PAL9RIO4SMLM$~Z1O_thumb[2]

 

嗯,三维曲线的绘图就这么简单(⊙v⊙)

 

那我们再来看看三维曲面怎么画图~~~~

 

matlab三维曲面作图的思路:
已知两个向量x,y,然后求z=f(x,y)
z
是一个矩阵,zij=f(xi,yj)遍历所有x,y的组合
得到一系列的点(xi,yj,zij)

然后得到拟合的曲面

同样x,y要取的比较精细,不然得到的都是平面

 

作图的步骤要背喔!!!ヾ(o◕∀◕)ノヾ

第一步:
使用meshgrid 函数生成网格节点矩阵X,Y


调用方法[X,Y] = meshgird(x,y)
x,y
是上述的两个向量

 

 

我们来看看网格节点生成的效果

在命令窗口输入

clf
x=0:0.2:1;
y=x;
[x y]=meshgrid(x,y);
plot(x,y,\'b+\')

这就是所有(x,y)的取值 74G2~9$9K72C27]]@SK{`FS_thumb[2]

 

然后计算所有的z=f(x,y)就可以了

 

所以第二步就是计算Z=f(X,Y)

接下来第三步使用mesh或者surf函数绘制曲面

 

此外meshzmeshc除了作图还有不同的功能
surf画出的曲面是网格表面着色的图形,以不同的颜色表示曲面曲率的大小

 

下面我们画一个锥面z=sqrt(x^2+y^2)的图像

x=-2:0.05:2;
y=x;
[X,Y]=meshgrid(x,y);
hold on;
grid on;
Z=sqrt(X.^2+Y.^2);
mesh(X,Y,Z);

QF4QDW_D8)LFG6X`%LIKR)X_thumb[2]

 

再来一个参数方程的例子吧 ~

TT=0:0.1*pi:2*pi;
a=-2;b=1;
VV=-b:0.1:b;
[t,v]=meshgrid(TT,VV);
x=(a+v.*sin(t./2)).*cos(t);
y=(a+v.*sin(t./2)).*sin(t);
z=v.*cos(t./2);
figure;surf(x,y,z);
view([-117 32]);
title(\'莫比乌斯带\');

这里t,v是参数

先生成参数的范围

然后带入x,y,z的参数方程进行计算

然后就画出图像了~

HO8}TCDQOU0Z0IS2$$)TRCD

 

下面画一个分段的图像 ~

其实就是根据条件修改矩阵的值 。

画一个z=x^2+y^2被圆柱面x^2+y^2=1以及三坐标平面所截得的在第一卦限的图像:

dd=0.01;n=1+1/dd;
[x,y]=meshgrid(0:dd:1,0:dd:1);
z=0;
for j=1:n
    for i=1:n
        if x(i,j)<sqrt(1-y(i,j).^2)
            z(i,j)=x(i,j).^2+y(i,j).^2;
        else
            z(i,j)=0;
        end
    end
end
mesh(x,y,z);

6AZ)R~SNTK0L`]{6XPB4AQR_thumb[2]

 

 

差不多方法就是这些,自己有空可以去画一画双曲面,椭球面,马鞍面之类的常见曲面练习一下~~~(。・∀・)ノ゙

 

这一部分就告一段落了(。•́__ก̀。)

以上是关于MATLAB入门学习的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB从入门到精通-如何在MATLAB中实现各种特殊上标?

matplotlib绘图入门详解

Matlab入门学习(文件读写)

Matlab入门学习(矩阵函数绘图的基本使用)

matlab 机器学习入门

MATLAB入门学习