MATLAB在“汽车理论”中的简单应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB在 汽车理论 中的简单应用 汽车理论 可以使用MATLAB作为科学计算工具的课程㊂本文档的目的在于向之前没有接触过MATLAB的同学介绍其在 汽车理论 中的简单应用,更多关于MATLAB的知识需要大家结合其他课程,通过进一步的学习和研究来掌握㊂

需要说明的是:

1)本文档默认读者已掌握C语言和线性代数基本知识㊂

2)红色字体的语句可以直接复制到MATLAB中进行运算㊂语句中用到的符号(引号内部分除外)均为英文状态下输入㊂本文档所有语句均已在MATLAB7.8.0(R2009a)版本下调试过㊂

3)例程编写样式纯属个人习惯,大家不必拘泥㊂

4)如对本文档及‘汽车理论“第6版中的附录C㊀一个学生的 汽车理论 课程MATLAB习题编程思路有任何问题,欢迎发送邮件一起讨论㊂邮件地址:wang-d07@ ㊂

1.MATLAB使用指南

打开MATLAB后出现的是软件的主界面㊂几个窗口中最重要的是Command Window,用户可以在里面输入程序,编写的函数的结果也在这里显示㊂

首先对MATLAB进行配置㊂如果是在自己的计算机上编程,建议先建一个属于自己的workspace,用来保留用户的工作环境㊂选择 file Save Workspace As ,在合适的目录下保存用户自己的workspace(.mat文件)㊂这样,以后用户编程的环境就默认为这个workspace了㊂

虽然可以直接在Command Window里编写程序,但这样的程序无法被保存和发布㊂选择 file New Blank M File ,可以新建空白的MATLAB函数文件(.m文件),在这里编写的程序可以被保存和发布㊂编写好的程序要经过编译之后才能执行㊂选择 Tools Save File and Run (也可以直接按键),进行程序的编译和执行,结果显示在Command Window中㊂如果程序有错误,MATLAB也会提示程序运行到哪一行命令终止了,并指出可能的错误类型,然后用户就开始了漫长的debug㊂

如果编写了子程序和主程序,那么需要先对子程序进行编译(此时不会产生任何结果),只有编译通过后再对主程序进行编译,才会显示结果㊂

当然,也可以选择新建 Function M File ,它直接提供一个函数模板㊂(个人感觉没有太大意义)

明白该如何操作MATLAB后,接下来介绍MATLAB中与C语言不同的变量单位 矩阵㊂

2.矩阵及其运算

MATLAB全称是Matrix Laboratory(矩阵实验室),因此矩阵是MATLAB中最基本的运算单位,熟练掌握矩阵的知识对于灵活运用MATLAB有很大帮助㊂

1

在MATLAB中,一个已知的矩阵可以定义如下:

A=[1-20;3.54.8666pi]

其中A是这个矩阵的名字,在MATLAB中,一个变量必须以字母开头,以数字㊁下划线等开头都是违法的(但可以用在变量名中间);A的值是一个矩阵,其元素分别为:

a11=1,a12=-2,a13=0,a21=3.5,a22=4.8666,a23=3.1415

由上述可知,同一行的元素用(一个或多个)空格隔开,不同行的元素用分号(英文状态下的,下同)隔开㊂其中, pi 是MATLAB中已经定义好的常数,可以直接引用㊂可以看出MATLAB与C语言在定义上有所差别,即如果变量是已知的,MATLAB无须事先定义对象类型(整数㊁浮点数㊁无符号数等),通过正常运算得出的变量也无须对其事先定义类型㊂

此外,还可以定义向量,如:

B=[123]

C=[0;0.5;-1]

其中,B是一个行向量,C是一个列向量㊂

ᶄ 表示矩阵的转置,即列向量C也可以表示为:

C=[00.5-1]ᶄ

如果想表示矩阵中的某个元素,其方法如下:

a=A(2,1)

可以得到:

a=3.5

其中 () 内的语句部分表示元素的位置, , 前为行, , 后为列,即a等于矩阵A中第2行第1列的元素㊂

对于一个向量,由于某一方向维度为1,因此上述语句可以简化为:

b=B(3)

c=C(2)

可以得到:

b=3

c=0.5

如果想取矩阵中的某一部分,其方法如下:

D=[23783;01956;46215;40391]

E=D(1:3:4,1:2:5)

F=D(1:3,1:2)

G=D(2,:)

可以得到:

E=[273;431]

F=[23;01;46]

G=[01956]

其中, : 表示步进,如1:2:5表示从1开始步进为2直到5,即1㊁3㊁5,因此E 为矩阵D的第1㊁4行(步进为3)和第1㊁3㊁5列(步进为2)交叉处的元素组成的矩阵; 2

如果步进为1,则可以省略不写,如1:3表示1㊁2㊁3,则F为矩阵D的第1~3行和1~2列交叉处元素组成的矩阵;单独使用的 : 表示所有行(列),即G为矩阵D第2行所有列的元素组成的矩阵㊂

MATLAB也允许对矩阵进行扩充,但一定要注意维数的正确性㊂例如:

H=[31;52]

K=[H;60]

L=[01;Hᶄ]ᶄ

可以得到:

K=[31;52;60]

L=[031;152]

矩阵间可以进行加㊁减㊁乘㊁除等矩阵运算,但同样需要注意维数的正确性㊂例如: M=[10;21]

N=[31;10]

那么有:

M+N=[41;31]

M∗N=[31;72]

如果用一个常数与矩阵进行四则运算,结果是这个常数分别与矩阵中的元素进行四则运算,如:

3+M=[43;54]

2∗M=[20;42]

此外,MATLAB还提供了有别于正常的矩阵运算的点乘(除㊁次方)运算,即在运算符号前加 . ,表示矩阵中对应位置的元素进行代数运算㊂例如:

M.∗N=[30;20](对应位置元素相乘)

M.^2=[10;41](对应位置元素平方)

点乘(除㊁次方)运算在数据处理中很常用㊂例如,一个20维向量中记录的是汽车通过的20个测试路段的长度,另一个20维向量中记录的是汽车通过每个测试路段所用的时间,两个向量做点除运算,得到一个20维向量,即为汽车通过每个路段的平均速度㊂需要注意的是,由于矩阵加减本身就是相应位置元素的代数运算,因此没有点加(减)运算㊂

在MATLAB中已定义好了一些特殊的矩阵,用户可以方便地使用,包括零矩阵(元素全为0)zeros㊁一矩阵(元素全为1)ones㊁单位矩阵(对角线元素均为1㊁其余位置元素均为0的方阵,即 I )eyes,用户用时只需定义矩阵的维数即可㊂例如:

P=zeros(2,3)

Q=ones(5,1)

R=eyes(2)

分别表示P为一个2行3列的零矩阵,Q为一个5维的一矩阵,R是一个2维单位矩阵㊂

需要注意的是:

1)如果zeros和ones只给了一个维度的定义,默认为方阵,如zeros(3)是一个3∗3

3

相关文档
最新文档