2022年MATLAB入门教程.docx
《2022年MATLAB入门教程.docx》由会员分享,可在线阅读,更多相关《2022年MATLAB入门教程.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源欢迎下载精品学习资源1-1、基本运算与函数MATLAB 入门教程1MATLAB的基本学问欢迎下载精品学习资源在 MATLAB 下进行基本数学运算 ,只需将运算式直接打入提示号 ()之後,并按入 Enter键即可;例如: 5*2+1.3-0.8*10/25 ans =4.2000MATLAB会将运算结果直接存入一变数 ans,代表 MATLAB 运算後的答案( Answer)并显示其数值於萤幕上;小提示: 是 MATLAB 的提示符号( Prompt),但在 PC 中文视窗系统下,由於编码方式不同,此提示符号常会消逝不见,但这并不会影响到MATLAB 的运算结果;我们也可将上述运算式
2、的结果设定给另一个变数x: x = 5*2+1.3-0.8*102/25x = 42此时 MATLAB 会直接显示 x 的值;由上例可知 ,MATLAB 熟识全部一般常用到的加 (+)、减( -)、乘( * )、除( /)的数学运算符号,以及幂次运算( );小提示: MATLAB将全部变数均存成 double 的形式,所以不需经过变数宣告( Variabledeclaration);MATLAB同时也会自动进行记忆体的使用和回收,而不必像C 语言,必需由使用者一一指定 .这些功能使的 MATLAB易学易用,使用者可专心致力於撰写程式,而不 必被软体枝节问题所干扰;如不想让 MATLAB 每次都
3、显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin10*exp-0.3*42;如要显示变数 y 的值,直接键入 y 即可:yy =-0.0045在上例中, sin 是正弦函数, exp 是指数函数,这些都是 MATLAB 常用到的数学函数;下表即为 MATLAB 常用的基本数学函数及三角函数:小整理: MATLAB常用的基本数学函数absx:纯量的确定值或向量的长度anglez:复 数 z 的相角 Phase angle sqrtx:开平方realz:复数 z 的实部imagz:复数 z 的虚 部conjz:复数 z 的共轭复数roundx:四舍五入至最近整数fixx :
4、无论正负,舍去小数至最近整数floorx :地板函数,即舍去正小数至最近整数ceilx :天花板函数,即加入正小数至最近整数ratx:将实数 x 化为分数表示ratsx:将实数 x 化为多项分数开放欢迎下载精品学习资源signx:符号函数 Signum function;当 x0 时, signx=1; 小整理: MATLAB常用的三角函数sinx:正弦函数 cosx:馀弦函数 tanx:正切函数 asinx:反正弦函数 acosx:反馀弦函数 atanx:反正切函数atan2x,y:四象限的反正切函数sinhx:超越正弦函数 coshx:超越馀弦函数 tanhx:超越正切函数asinhx:反
5、超越正弦函数acoshx:反超越馀弦函数atanhx:反超越正切函数变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算: x = 1 3 5 2;y = 2*x+1y = 3 7 11 5小提示:变数命名的规章1.第一个字母必需是英文字母2.字母间不行留空格 3.最多只能有 19 个字母,MATLAB 会忽视多馀字母我们可以任凭更换、增加或删除向量的元素:y3 = 2 % 更换第三个元素y =3 7 2 5y6 = 10 % 加入第六个元素y = 3 7 2 5 0 10y4 = %删除第四个元素,y = 3 7 2 0 10在上例中, MATLAB 会忽视
6、全部在百分比符号( %)之後的文字,因此百分比之後的文字均可视为程式的注解( Comments);MATLAB亦可取出向量的一个元素或一部份来做运算 : x2*3+y4 %取出 x 的其次个元素和 y 的第四个元素来做运算ans = 9y2:4-1 % 取出 y 的其次至第四个元素来做运算ans = 6 1 -1在上例中, 2:4 代表一个由 2、3、4 组成的向量如对 MATLAB 函数用法有疑问,可随时使用 help 来寻求线上支援( on-line help): help linspace小整理: MATLAB的查询命令help:用来查询已知命令的用法;例如已知 inv 是用来运算反矩阵
7、,键入 help inv 即可得知有关 inv 命令的用法;(键入 help help 就显示 help 的用法,请试看看!) lookfor :用来查找未知的命令;例如要查找运算反矩阵的命令,可键入 lookfor inverse,MATLAB 即会列出全部和关键字 inverse 相关的指令;找到所需的命令後 ,即可用 help 进一步找出其用法 ;( lookfor 事实上是对全部在搜寻路径下的 M 档案进行关键字对第一注解行的比对,详见欢迎下载精品学习资源後叙;)将列向量转置( Transpose)後,即可得到行向量( Column vector): z = xz = 4.00005.
8、20006.40007.60008.800010.0000不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等:lengthz % z 的元素个数ans = 6maxz % z 的最大值ans = 10minz % z 的最小值ans =4小整理:适用於向量的常用函数有: minx:向量 x 的元素的最小值maxx: 向量 x 的元素的最大值meanx: 向量 x 的元素的平均值medianx: 向量 x 的元素的中位数stdx: 向量 x 的元素的标准差diffx:向量 x 的相邻元素的差sortx: 对向量 x 的元素进行排序( Sorting) lengthx: 向
9、量 x 的元素个数normx: 向量 x 的欧氏( Euclidean)长度sumx: 向量 x 的元素总和prodx: 向量 x 的元素总乘积cumsumx: 向量 x 的累计元素总和cumprodx: 向量 x 的累计元素总乘积dotx, y: 向量 x 和 y 的内 积crossx, y: 向量 x 和 y 的外积 (大部份的向量函数也可适用於矩阵,详见下述;)如要输入矩阵,就必需在每一列结尾加上分号(;) ,如下例:A = 1 2 3 4; 5 6 7 8; 9 10 11 12; A =12345678910 1112同样地,我们可以对矩阵进行各种处理: A2,3 = 5 % 转变位
10、於其次列,第三行的元素值A =12345658910 1112B = A2,1:3 % 取出部份矩阵 B B = 5 6 5A = A B %将 B 转置後以行向量并入 A A =欢迎下载精品学习资源1234556586910 11125A :, 2 = A =%删除其次行(:代表全部列)13455586911 125A = A; 4 3 2 1 %加入第四列A =134555869111254321A1 4, : = %删除第一和第四列(:代表全部行)A =5586911125这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的成效,就看各位的巧思和创意;小提示:在 MATLAB 的内部
11、资料结构中 ,每一个矩阵都是一个以行为主 ( Column-oriented ) 的阵列(Array )因此对於矩阵元素的存取,我们可用一维或二维的索引( Index)来定址;举例来说,在上述矩阵 A 中,位於其次列、第三行的元素可写为A2,3 (二维索引)或A6 (一维索引,即将全部直行进行堆叠後的第六个元素) ;此外,如要重新支配矩阵的形状,可用reshape命令:B = reshapeA, 4, 2 % 4是新矩阵的列数, 2 是新矩阵的行数B =5891256115小提示: A: 就是将矩阵 A 每一列堆叠起来,成为一个行向量,而这也是MATLAB 变数的内部储存方式;以前例而言, r
12、eshapeA, 8, 1和 A: 同样都会产生一个 8x1 的矩阵;MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开:x = sinpi/3; y = x2; z = y*10,z = 7.5000如一个数学运算是太长,可用三个句点将其延长到下一行:z = 10*sinpi/3* . sinpi/3;如要检视现存於工作空间( Workspace)的变数,可键入 who: whoYour variables are:testfile x这些是由使用者定义的变数;如要知道这些变数的详细资料,可键入:whosName Size Bytes Class A 2x4 64 double a
13、rray B 4x2 64 double array ans 1x1 8 double array x 1x1 8 double array欢迎下载精品学习资源y 1x1 8 double array z 1x1 8 double arrayGrand total is 20 elements using 160 bytes 使用 clear 可以删除工作空间的变数: clear AA. Undefined function or variable A.另外 MATLAB 有些永久常数( Permanent constant)s,虽然在工作空间中看不到,但使用者可直接取用,例如:pians =
14、 3.1416下表即为 MATLAB 常用到的永久常数;小整理: MATLAB的永久常数 i 或 j:基本虚数单位eps:系统的浮点( Floating-point)精确度inf :无限大, 例如 1/0 nan 或 NaN:非数值( Not a number) ,例如 0/0pi:圆周率 p(= 3.1415926.) realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin: 函数的输入引数个数nargin: 函数的输出引数个数1-2、重复命令最简洁的重复命令是 forfor-loop ),其基本形式为: for 变数 = 矩阵;运算式;end其中变数的值会
15、被依次设定为矩阵的每一行,来执行介於for 和 end 之间的运算式;因此 ,如无意外情形,运算式执行的次数会等於矩阵的行数;举例来说,以下命令会产生一个长度为6 的调和数列( Harmonic sequence): x = zeros1,6; % x 是一个 16 的零矩阵for i = 1:6, xi = 1/i; end在上例中,矩阵 x 最初是一个 16 的零矩阵,在 fori 的值依次是 1 到 6,因此矩阵 x 的第 i 个元素的值依次被设为1/i;我们可用分数来显示此数列:format rat % 使用分数来表示数值dispx1 1/2 1/3 1/4 1/5 1/6for 圈可
16、以是多层的,下例产生一个16 的 Hilbert 矩阵 h,其中为於第 i 列、第 j 行的元素为h = zeros6;for i = 1:6, for j = 1:6,hi,j = 1/i+j-1; endend disph1 1/2 1/3 1/4 1/5 1/61/2 1/3 1/4 1/5 1/6 1/71/3 1/4 1/5 1/6 1/7 1/81/4 1/5 1/6 1/7 1/8 1/9欢迎下载精品学习资源1/5 1/6 1/7 1/8 1/9 1/101/6 1/7 1/8 1/9 1/10 1/11小提示:预先配置矩阵在上面的例子,我们使用 zeros来预先配置( Allo
17、cate)了一个适当大小的矩阵;如不预先配置矩阵,程式仍可执行,但此时MATLAB需要动态地增加(或减小)矩阵的大小,因而降低程式的执行效率;所以在使用一个矩阵时,如能在事前知道其大小,就最好先使用 zeros或 ones等命令来预先配置所需的记忆体(即矩阵)大小;在下例中, forHilbert 矩阵的每一行的平方和:for i = h,dispnormi2; %印出每一行的平方和end1299/871282/551650/2343524/2933559/4431831/8801在上例中,每一次i 的值就是矩阵h 的一行,所以写出来的命令特别简洁;另一个常用到的重复命令是 while whi
18、le 条件式;运算式;end也就是说,只要条件示成立,运算式就会一再被执行;例如从前产生调和数列的例子,我们可用 whilex = zeros1,6; % x 是一个 16 的零矩阵i = 1;while i 0.5,dispGiven random number is greater than 0.5.; endGiven random number is greater than 0.5.1-4 、集合多个命令於一个 M 档案如要一次执行大量的 MATLAB 命令,可将这些命令存放於一个副档名为 m 的档案,并在MATLAB 提示号下键入此档案的主档名即可 ;此种包含 MATLAB 命令的
19、档案都以 m 为副档名,因此通称 M 档案(M-files );例如一个名为 test.m的 M 档案,包含一连串的 MATLAB 命令,那麽只要直接键入 test,即可执行其所包含的命令:pwd % 显示现在的目录ans =欢迎下载精品学习资源D:MATLAB5bincd c:datamlbook % 进入 test.m所在的目录type test.m % 显示 test.m 的内容% This is my first test M-file.% Roger Jang, March 3, 1997 fprintfStart of test.m.n;for i = 1:3,fprintfi =
20、 %d - i3 = %dn, i, i3; endfprintfEnd of test.m.n;test % 执行 test.m Start of test.m.i = 1 - i3 = 1 i = 2 - i3 = 8i = 3 - i3 = 27End of test.m.小提示:第一注解行( H1 help line) test.m的前两行是注解 ,可以使程式易於明白与治理;特别要说明的是,第一注解行通常用来简短说明此M 档案的功能,以便 lookfor 能以关键字比对的方式来找出此 M 档案;举例来说, test.m的第一注解行包含 test这个字,因此假如键入 lookfor te
21、st,MATLAB 即可列出全部在第一注解行包含test 的 M 档案,因而 test.m 也会被列名在内;严格来说, M 档案可再细分为命令集( Scripts)及函数( Functions);前述的 test.m 即为命令集,其效用和将命令逐一输入完全一样,因此如在命令集可以直接使用工作空间的变数,而且在命令集中设定的变数,也都在工作空间中看得到;函数就需要用到输入引数( Input arguments)和输出引数( Output arguments)来传递资讯,这就像是 C 语言的函数 ,或是 FORTRAN 语言的副程序( Subroutines);举例来说,如要运算一个正整数的阶乘(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 MATLAB 入门教程
限制150内