MATLAB学习笔记

来源:互联网 发布:笨办法学python ex46 编辑:程序博客网 时间:2024/06/01 08:23

1. 自由探索之恢复

如果不小心关闭了当前路径窗口、命令历史记录窗口或命令窗口,可以通过菜单栏的“Desktop”菜单中“DesktopLayout }Default”恢复。

2. 打开简单的图形窗口

在命令窗口中的>>后面输入:

funtool

并按回车键。

3.  注释

命令行中的百分号(%)起注释的作用,MATLAB自动将%以及其后的内容显示为绿色,在执行这个命令行的命令时,自动忽略%以及其后的内容。

4.  实数值矩阵的输入

不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一对方括号([ ])内。

5. 特殊矩阵的生成

B=zeros(2)   %生成2*2全零阵

B=zeros(2, 3)   %生成2*3全零阵

B=zeros(size(Matrix_B))  %生成与矩阵Matrix_B 相同大小的全零阵

Y=eye(2)  %生成2*2的单位阵

B=eye(size(B))   %生成与矩阵B相同大小的单位阵

Y = ones(n)        %生成n×n全1阵

Y = ones(m,n)       %生成m×n全1阵

Y = ones(size(A))     %生成与矩阵A相同大小的全1阵

6. 矩阵的加减运算

 A=[1 2;3 4];B=[5,6;7,8];C=A+B,D=A-B

7. 矩阵的乘法

(1)矩阵相乘(*)

A=[1,2;-1,0];B=[1,2,3;4,5,6];C=A*B

(2)矩阵数乘(*)

A=[1,2,3;4,5,6];B=-2*A,C=A*(-2)

(3)向量点积(dot)

a=[1,2];b=[3,4];c=[3;4];d_1=dot(a,b),d_2=dot(a,c)

(4)向量叉乘(cross)

a=[1,0,-1];b=[0,1,2];c=cross(a,b),d=cross(b,a)

向量叉乘的计算:

a=(a1,b1,c1)b=(a2,b2,c2)向量a×向量b=  | i j k|  |a1 b1 c1|  |a2 b2 c2|  =(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)
8.  矩阵除法

MATLAB提供了两种除法运算:左除(\)和右除(/)。当矩阵A可逆时,X = A\B是方程A*X =B的解(这里当然还要求A的行数=B的行数),而X = C/A是方程X*A = C的解(这里当然还要求A的列数=C的列数)。

9.  矩阵乘方(^)

C=[1,2;2,1]^(-2)

要求[1,2;2,1]是可逆的。

10.  矩阵转置(’)

B=A

若A为复数矩阵,则A’表示A的共轭转置。对于复数矩阵A,若仅希望转置,则用如下命令:A.’。

11.  方阵的行列式 (det)

det([1,2;3,4])

12.  方阵的逆矩阵(inv)

inv([1,2;3,4])

或者使用初等变换:

A=[1,2;3,4];B=[1,2,1,0;3,4,0,1];C=rref(B);C,X=X(:,3:4)

用format rat命令可以使输出格式为有理格式。

A=[2,1,-1;2,1,2;1,-1,1];format rat;D=inv(A)   %可以用分数形式输出D矩阵

 13. 方阵的迹(trace)

trace([1,2;-1,3])

14.  矩阵的秩(rank)

rank(A)

15.  求线性方程组的解

>> a_1=[5;1;0;0;0];a_2=[6;5;1;0;0];a_3=[0;6;5;1;0];a_4=[0;0;6;5;1];

>> a_5=[0;0;0;6;5];b=[1;0;0;0;1]; A=[a_1,a_2,a_3,a_4,a_5];D=det(A);

>> X=[]; %空矩阵

>> for i=1:5

      A=[a_1,a_2,a_3,a_4,a_5];

       A(:,i)=b; %A的第i列换成b,下面一行的A的第i列就是b

      X=[X,det(A)/D]; %det(A)/D的值(x_i的值)添到原X后面

       i=i+1;

   end

>> format rat,X%这样得到的结果与图3.1.1中的结果是一样的

16. 二维曲线的简捷绘制

ezplot('x*cos(x)',[-4*pi,4*pi])    %画出y = xcosx在区间[-4p, 4p]上的图形。

ezplot('x^2/4+y^2/5=1',[-3,3,-4,4])      %画出椭圆在区域[-3, 3]´[-4, 4]内的图形。

17. 在同一个坐标系内绘制多条曲线

命令格式:plot(x1,y1,'s1',x2,y2,'s2',…)

其中:'s1', 's2'等为可选参数,用来指定绘制曲线的线型、颜色、数据点形状等。

线型可选参数有:-(实线),:(虚线),-.(点划线)和- -(双划线)。

颜色可选参数有:y(黄色),m(品红色),c(青色),r(红色),g(绿色),b(蓝色),w(白色)和k(黑色)。

数据点可选参数有:.(实心点),o(圆圈),x(叉),+(十字),*(星号),s(方块),d(菱形),v(下三角),^(上三角),<(左三角),>(右三角),p(五角星)和h(六角星)。
x = -pi:0.1:pi; %设置x的取值范围和取点间距
y1=exp(0.1*x).*sin(2*x); y2=x.*cos(x); %注意其中的.*
plot(x,y1,'* r',x,y2,'o b') %两条曲线用不同的数据点形状和颜色

18.  三维曲线的绘制

命令格式:plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',…)

其中:'s1', 's2'等为可选参数,与plot中的用法完全相同,不选则使用默认设置。

如果只绘制一条三维曲线,也可以用简捷的绘制命令ezplot3,命令格式与ezplot类似。

t = 0:0.1:4*pi;

x = 2*cos(t);

y = 2*sin(t);

z = 1.5*t;

plot3(x,y,z), xlabel('x'), ylabel('y'),zlabel('z') %标识坐标轴

或者使用下面的命令,可以达到相同的效果:ezplot3('2*cos(t)','2*sin(t)', '1.5*t', [0,4*pi])

19.  三维网线图与表面图的绘制

命令格式:mesh(x,y,z)%绘制三维网线图

                    surf(x,y,z) %绘制三维表面图

也可以在调用命令时增加可选参数来改变图形的颜色和线型。

还可以用简捷的绘制命令ezmesh与ezsurf绘制三维网线图与表面图。

x = -2:0.1:2; y = -2:0.1:2; %设置x的取值范围和取点间距

[X,Y]=meshgrid(x,y); %xy产生“格点”矩阵

Z = sin(X.*Y); %计算“格点”矩阵的每个“格点”上的函数值

mesh(X,Y,Z) %绘制网线图

可以简单地使用下述命令绘制:ezsurf('x*exp(-x^2-y^2)')

x = -2:0.1:4; y = x; %设置x的取值范围和取点间距

[X,Y]=meshgrid(x,y); %xy产生“格点”矩阵

Z = X.^2+Y.^2; %计算“格点”矩阵的每个“格点”上的函数值

surf(X,Y,Z) %绘制曲面

20.  在同一个坐标系里绘制多个曲面

x=-20:1:20;y=x;

[X,Y]=meshgrid(x,y);

Z1=X+Y; %平面p1

Z2=2*X-Y+2*ones(size(X)); %平面p2

Z3=zeros(size(X));%平面p3

surf(X,Y,Z1),hold on,mesh(X,Y,Z2),mesh(X,Y,Z3)

原创粉丝点击