MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The
MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C、C++、Java、Python和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
From Wikipedia
另外,Matlab在上世纪七十年代前由Fortran编写,后来用C改写。
根据所用参考书将学习分为三部分,数值计算、符号计算、图形可视化。
向量与矩阵运算
MATLAB的是主要数据对象是矩阵,标量、行向量、列向量都是它的特例,最基本的功能是矩阵运算。
一、向量及其运算
向量生成有直接输入向量、冒号生成向量、线性等分生成向量等方法。
直接输入向量,使用逗号或空格分割元素生成行向量,使用分号或回车分割向量元素生成列向量,这里注意行向量维度需要一致,列向量维度需要一致,否则报错。
>> [1,2,3;4 5 6;7,8 9]
ans =
1 2 3
4 5 6
7 8 9
冒号生成向量,格式为x1:x2:x3,x1为初始值,x2为步长、x3为终止值,x2缺省为1。
>> [3:-1:1;6:-2:2;9:-3:3]
ans =
3 2 1
6 4 2
9 6 3
线性等分生成向量,使用线性等分函数linspace,格式为y=linspace(x1,x2,n),x1表示起始值,x2表示终止值,n表示产生n维向量。与上方法相同,生成的向量都是行向量,如需列向量使用’转置即可。
>> [linspace(1,3,3)' linspace(1,3,3)' linspace(1,3,3)']
ans =
1 1 1
2 2 2
3 3 3
向量运算这里介绍向量的代数运算、群运算、点积叉积混合积等运算。
向量的代数运算包括和差、数乘、平移,设x=[x1 x2 x3],y=[y1 y2 y3],a,b。
和差x±y=[x1±y1 x2±y2 x3±y3],数乘a*x=[a*x1 a*x2 a*x3],平移x+b=[x1+b x2+b x3+b]。
>> x=[1 3 5];y=[2 4 6];
>> x+y,x-y,2*x,x+3
ans =
3 7 11
ans =
-1 -1 -1
ans =
2 6 10
ans =
4 6 8
群运算,包括向量间的乘法、除法、乘幂等运算。设x=[x1 x2 x3],y=[y1 y2 y3]。
元素群乘法x.*y=[x1*y1 x2*y2 x3*y3],元素群右除x./y=[x1/y1 x2/y2 x3/y3],元素群左除x.\y=[y1/x1 y2/x2 y3/x3],
元素群乘幂x.^5=[x1^5 x2^5 x3^5],元素群乘幂7.^x=[7^x1 7^x2 7^x3],元素群乘幂x.^y=[x1^y1 x2^y2 x3^y3]。
>> x=[1 2 3];y=[4 5 6];
>> x.*y,x./y,x.\y,x.^5,7.^x,x.^y
ans =
4 10 18
ans =
0.2500 0.4000 0.5000
ans =
4.0000 2.5000 2.0000
ans =
1 32 243
ans =
7 49 343
ans =
1 32 729
点积叉积混合积运算,点积(内积)MATLAB中有函数dot(a,b),叉积(外积)MATLAB中则有函数cross(a,b),混合积即可由两个函数共同实现,这里对点乘和叉乘运算进行简要解释扩展。
向量的点乘,也叫向量的数量积、内积、点积、无向积等,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。
数量积的几何意义是表示在b向量在a向量方向上的投影与a模长的乘积,也可以用来计算两向量夹角等。a·b = |a|*|b|*cosθ。
向量的叉乘,又叫向量的向量积、外积、叉积、有向积等,叉乘的运算结果是一个向量。并且两个向量的向量积与这两个向量组成的坐标平面垂直。
在三维几何中,向量a和向量b的向量积结果是法向量,则可以通过两个向量的向量积,生成第三维,从而构建XYZ坐标系。在二维空间中,向量积的几何意义是:axb等于由向量a和向量b构成的平行四边形的面积。a∧b = |a|*|b|*sinθ。
From -牧野-
原文中不准确和冗余之处已纠正。
向量的内外积是线性代数的内容,不过已经全部忘光了,身为计算机科学系的学生十分惭愧,这里再做一点补充。
数量积在物理中可以通过W=F·s=|F||s|cosθ理解,力对物体做的功=力在运动方向上的分量对物体做的功。
向量积在物理中可以通过M=r×F=|r||F|sinθ理解,也就是一个力对一个定点的矩,当F与向径r不垂直时,二者有个夹角θ。
另外a∧b的方向:与这两个向量所在平面垂直,且遵守右手定则。(若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。c=a∧b)
下面是计算演示。
>> x=[1 2 3];y=[3 4 5];
>> dot(x,y), cross(x,y), dot(x,cross(y,cross(x,y)))
ans =
26
ans =
-2 4 -2
ans =
24
二、矩阵及其运算
矩阵生成有直接输入矩阵、M文件输入矩阵、函数生成矩阵等方法。
直接输入矩阵,规模小时非常实用,矩阵用[]标识,行内用逗号或空格分割元素,行与行之间用分号或回车分割,矩阵元素也可以写为运算表达式。
>> [1,2,3;exp(1),7/6,abs(-2.8)]
ans =
1.0000 2.0000 3.0000
2.7183 1.1667 2.8000
M文件输入矩阵,M文件是一种可以在MATLAB系统中运行的文本文件,它可以分为命令式文件和函数式文件,主要使用命令式的M文件创建矩阵。
这里对M文件也进行补充扩展。
MATLAB涉及的文件类型有.m .mat .asv .fig .xml .sxl等许多种,MATLAB提供了程序设计功能,即对应以.m为扩展名的文件,简称M文件。M文件有两种形式:命令式文件(Script)和函数式文件(Function)。
命令式文件就是命令行的简单叠加,这样就解决了用户在命令窗中输入许多命令的麻烦,也避免了重复性工作。无输入参数和返回,生成的变量均为全局变量,通过clear等命令可以清除。
函数式文件主要解决参数传递和函数调用问题,首行必须用function标识,可以有输入参数和返回值,过程中生成的变量会在调用结束后被销毁。
Basis_3.m
aa=[1,2,3;4,5,6;7,8,9]
>> Basis_3
aa =
1 2 3
4 5 6
7 8 9
函数生成矩阵,有ones(全1阵)、zeros(全0阵)、eye(单位阵)、rand(均匀分布随机阵)等特殊矩阵。直接演示。
Basis_4.m
a=[1,2,3;4,5,6;7,8,9];
b=ones(2,3);
c=ones(size(a));
d=zeros(3,2);
e=eye(3);
f=rand(3,3);
>> Basis_4
>> a,b,c,d,e,f,g
a =
1 2 3
4 5 6
7 8 9
b =
1 1 1
1 1 1
c =








最低0.47元/天 解锁文章
2099

被折叠的 条评论
为什么被折叠?



