Matlab语言基础讲义



《Matlab语言基础讲义》由会员分享,可在线阅读,更多相关《Matlab语言基础讲义(17页珍藏版)》请在装配图网上搜索。
1、一、Matlab的变量与常量 Matlab中变量和常量存储都是相应的数据。 数据类型:基本类型、构造类型、符号对象 基本类型:数字型、字符串型 数字型:整型、浮点型 整形:无符号、有符号(int8、int16、int32、int64 1 位、2位、4位、8位) 浮点型:单精度(32位)、双精度(64位) 基本类型:数组类型(常见)、细胞类型、结构类型、类类型 符号对象(比较少见) 变量:在运算过程中其数值可以改变的量; 常量:在运算过程中其数值不改变的量。 变量命名规则: 变数名称是由一个字母开头,其后可以有任意数量的字母、数字或下划线。在变量命名时 尽量使用小写字母
2、,名字要有实在的意义,不要和系统保留的关键字(常量)和函数名相同 的名字,容易出错。 MATLAB是区分大小写的,变量名可以是任意长度。 Matlab 语言是一种弱类型语言,C语言是强类型语言, 变量在复制之前要对它的类型进行 严格的申明,不同就会出错,而 matlab不需要事先申明。 变量初始化: 1、采用赋值语句初始化变量; 2、用input函数从键盘输入初始化变量,如下: 1 R = ijipirt ('请输入额* ) fx请输入数 3、matlab已经定义好了的一些常量: Name iMeaining ept Accuracy 口F floaling・
3、/iiibW口it ij Th& imaginary uni I lllf InfiniGy. NaN UMufkwd nurr电值加 i拓 uh a num 瓢" Pl The number it I 、j虚数;Inf无穷大;NaN不定式;pi圆周率;ans特殊的变量。 二、matlab的基本数据结构 标量、向量、数组、矩阵的概念:标量、向量、数组本质上是特殊的矩阵形式;matlab 常用的是二维矩阵; 标量1*1的矩阵;向量可以看成是1行或者1列的矩阵;向量是数学中 的说法,数组是 matlab语言中的说法,但向量和数组在这里指的是同一种数据结构,可以 互用。
4、手动生成矩阵: 行矩阵:a = [1 2 3] 歹 U 矩阵:b = [1 2 3]' 或 b = [1;2;3] 2*2 矩阵:c = [1 2;3 4] » zerosC4, 3) 使用内置函数生成矩阵:常用的有ones, eye, zeros, size , length. A ones(4? » on^s(4) ans = a1名- 1111 till Lili 1I1I Lill 1111 1111 1111 seros C4) 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5、0 STlS = ans = 00 00 Q0 00 » eye (4) >> eye (% 3) sns ~ arts - 1000 100 0100 oia 0010 o a i 0QQ1 o q a 利用冒号表达式生成矩阵: 冒号:用来生成向量,定义数组下标,数组的循环迭代。 生成航向量: 生成列相量: >> (3:8)' » d = [3:37' 引用矩阵或矩阵中的元素: 举证可以看成一个一位数组,按列从左至右,从
6、上往下依次排列。 >> u = [1 2 3 4;5 € 7 8:9 10 11 12:13 14 15 161 1234 5678 9101112 13141516 » u⑵ 3) 3n 5 - » e(10) ans = 冒号当作下标 e(:,2):代表全部行元素,2代表第2列 噂= 1234 5678 Q101112 13141516 sns = 2 6 10 y>已出:) ans - 123 引用第3列2-4行: » eCSiij 3) ans - 11 15 指定生成某种矩阵 » f« g 1 二 000 000 00
7、0 006 矩阵的行拼接列拼接: Size函数:返回矩阵行列对应的维数; length函数返回行列维数最大的那个值 >> size(h) 3RE = e » length Ch) ans = 8 三、matlab中的空数组和子数组 子数组的概念 子数组的赋值与数组直接赋值的区别 end的用法 Linspace , logspace , reshape 预定义变量:date , clock , year, month, now, today (和日期处理有关) 空数组 E =
8、 [] 子数组 >> A=r3nd(4) A = 0.3909 C.8U3 0, L956 0.9693 0.2575 0. 2435 0. 2511 Q.^47: Q.叼07 。,曾 93 6 6161 0. 1386 D- 2543 C.3500 0. 1733 » ehilc^ACL [2 3]) child - 0. 14930.8143 >> diilc^AtSj 2:end) child - 0-S4070.92930.616。 Linspace 函数 用法:linspace(x1,x2,N) (linspace (x1
9、 , x2)默认生成包括 x1 和 x2 的 100 个数) 功能:linspace 是Matlab中的均分计算指令,用于产生 x1,x2之间的N点行线性的矢 量。其中x1、x2、N分别为起始值、终止值、元素个数。若默认 N,默认点数为100。 注:linspace(5,100,20) 和5: 5: 100的区别在于前者已知元素总个数而不知道步长, 后者已知步长不知元素个数,这两者的效果是一样的。 logspace 函数 用法:x=logspace(a, b, n) 功能:logspace(a, b, n)生成一个(1xn)数组,数据的第一个元素值为a,最后一个元 素为b, n是总
10、采样点数。需要注意的是,此时产生的数组元素在10、到10Ab上并不是均 匀分布的,而形成一个对数曲线。 reshape的用法 » a = 1:1; reshape 1冉 3,3 1 ans - 1q7 258 369 date , clock , year, month, now/, today 的用法 》》year Ing 1 >> 3nanth(ticwl >> day(now) >> day ('today) DDE - ans = axis = ans 二 2017 g 12 12 >> date ans = 12-Jun^20
11、l 7 >> clock ans = 1. 0e+03 + 2.01700.00e00.01200.01SO 0.01500.0340 四、matlab中的算术运算符 标量运算 矩阵预算 数组运算 运算优先级 标量:亦称“无向量”。有些物理量,只具有数值大小,而没有 方向,部分有正负之分。物 理学中,标量(或作纯量)指在 坐标变换下保持不变的物理量。用 通俗的说法,标量是只有 大小,没有方向的量。 +-*/\ » 2*3 » 2/3 ans = ans 二 6 CL 6667 ana L 5000 矩阵:由m x n个数aij排成的m
12、行n列的数表称为 m行n列的矩阵,简称m x n矩阵。 矩阵运算: A+B A-B A*B A/B A.*B A./B » A+E ans = » A-B ans = -1 0 6 0 4 4 0 0 6 »人比E ans 二 31 5Q 38 38 61 46 45 72 54 magic函数:生成魔方矩阵 » magic (3) » ma.gic (4) ans - 816 arts - 162313 5U108 357 97612 49Z I14151 » A/B » A. *B » A. /B ans = ans
13、 二 <,3333 -0.56675.6667 2167 0.5QQQ l.QQQQ 7.0000 -6.6667 -0.33335. 3333 4532 1. 00005. 00002. 0000 -fi.QOOO03.0000 |93627 1.0000 LOOOO 3* 0000 五、matlab中常见的运算函数 sum, prod, max, min (对矩阵进行运算) 三角、反三角函数,指数、对数函数,圆整函数、绝对值, 复数取实部、虚部、取模 Cross, dot, compan, inv, det, rank, eig, trace » sin
14、|» co莒 Si/3) " R =[2 3 4]» sir (A) ans =ans =4二ans = CL 50。。0.50002340« 90^30.14117508 圆整 ceil朝着正无穷圆整 floor朝着负无穷圆整 fix 朝着0圆整 round四舍五入整 mod取模函数 rem除取余 mod除取整 >> B=rand(3) B = 0. 81470.S1340.27S5 0.9I0580.63240. S46S 0. 12700.O&750. 9E7E >> r.ax (E) ans = Q, 90550.9134 Q, 9575 » nax
15、型 ans 二 k 9575 mean按列求平均值 mean (B) arts - 0.615SA.517S0.5943 prob接地 Sum(x, dim) dim=1按列2按行求和 >> 总un(& 1) ans - 1-84751.6^331.7S29 >> SUM (Bj 2) arts = 2,0066 2.0350 1.1820 conv可以做多项式乘法 比如,(XA6+XM+7X+4) *(XA5+XA3+3X+1)用 conv 函数展开: >> conv([1 0 1 007 4]j [1 0 1 0 3 1]) ans = I 020437E
16、42119 复数 » D = 2+-3i D 二 2.OQOO 4 3.00001 »。, ans = » real (D) >>讪明(D) ans = 2 □ns = 3 >> conj{D) ans = 》》abs [D) 》》an^le fD) ans = ans = 3.605S 0.9828 2. 0000 - 3. 00001 2. 0000 - 3. Q0001 六、matlab的字符串及其运算 ASCII 码: American Standard Code for Information Interchan
17、ge的缩写 字符串的数组本质 字符串的生成:单引号法,数组法 字符串的转换:abs, double , char , str2num , num2str , upper , lower 字符串:本质是一个字符数组。其他语言中也有。字符经过编码以数字的形式编在电脑里, 这种编码形式就是 ASCII码。 » st r 1 — ' I ain a man 厂 Strl = 字符串的生成:单引号法,数组法。 字符串的转换: abs将字母转成数字。double功能类似。 char 将字母转成字母。 str2num , num2str , upper , lower » abs C
18、 A,) » rLWit2str (65) >>doub 1 e4") » ehar(65) » str2nu*.C 97r) ans = ans - ans = ans = ans = 65 6& 55 A 97 J.3 勺 m2 = [ 1 mm boif ] 与「已2 - 工'm@box 这种方法比较迂回, » char CAJ+32) ans = a matlab中有函数直接转换 » char Ci5-32) ans = » upp*r (J二) ans = A ” Laver (' A ) ans = >> st r3 =
19、] str 3 = abcdef ghi jklrmapcirst uvirayz 七、字符串函数及二维字符串 Strcmp(S1,S2), findstr(S, S), strcat(S1, S2), disp(str) Fprint(format, data) 二维字符串 Strvcat, str2mat Strcmp(S1,S2) 字符 S1,S2 两个函数相同则为 1,不同则为0 Strcmp(S1,S2 ,n)比较前 >> strl I an >3 strcnfcp 1 st r lj ana str I = I am bay gi
20、rl" » strciwp1 strlj str]) ans I am girl findstr(S1, S) 将S1中所有的S以形式的形式返回 » findstr * st r l,J an") >> f indsti (stulj, firT ) >> findstr (str 1,''boy > ans I son tio3rl 工 am bop >> [st rlj stx2] T 日m T ant.匕。于。 J ant boy ans = T ■ant boyg I ant I am lacsjrr
21、 I am boyl am girl I Em tscs^rl ans strcat(S1, S2)将两个字符进行拼接;利用矩阵形式进行拼接也可以;当两个字符串长度 不一样是不可以[S1, S2]这样拼接。 >> St ECSat (. Etl 1 .幺七 U 之" ) >> st rest (st rl7 slr2) arts = I 讯 toyl disp(str)将字符串原样输出 二维字符串的生成: [" 1 ajn a boy" i aim a girV ] 错误使用中“t ca/t 吊联的矩阵的维度不一能。 » [J i am a boy J / i a
22、m a girr ]
ans =
i a boy
i硼记弓“L
维度不一的时候用空格补齐,这种方法比较麻烦。
Strvcat字符串纵向拼接 str2mat与之类似,区别在于str2mat会将空字符生成空行,
而前者会直接将其忽略。
>> st rSniat , st r lj' , str2)
>> st rvcat ' str 1 j sti2.J ans =
I an. toy
I a* gixl
» st rvcat 23、图入门
其他语言绘图特别繁琐,而
matlab绘图特别方便简洁。
plot , semilogx , semilogy
,loglog , legend , title
,grid , xlabel , ylable , hold
plot : matlab中最简单的绘图命令。
» x = 0:0.1:"pi: y = sin(x);
» plot区于)
» xLabel C 总轴’):ylab?l叮物):grid on;
legend ('在右上角对不同的曲线插入相应的图例’)
x-0;0, l;2*pi; 24、
yl=sintY);
y2= cos fit);
plot (x.yLXj y2)
1.andf正玄曲线'「余送曲就J
»=0:0.1i 2*pi:
y]=sin(x^;
y2=cos g ; plat txj yl i
hold, on
plat (ij y2)
1.电虱厂正玄曲线'「余弦曲线,)
九、绘图属性的控制
plot , semilogx , semilogy , loglog , legend , title , grid , xlabel , ylable , hold
线型,颜色,线宽的控制
s=0:0.
yl = i ir. h 1 ;
25、
!?i=CO5 X);
o—(J) 虚辩减显示
heli an 耀智T1
plot^^/t-T^J,艮基国线况子愦席尢川商
1牌tn£’匚主为去,云弦也专:,
XlabelC S^ST)
rhb式芦目变量}
?rid an7T开读格
«is([0 2*pi -1 1]) '队3轴的表度机轴的米度
axis5皿为将窗口眄聋和甜色度麦成相察竟成正方用
> ' 1L» i. n e S -t v 1 e " L4fiq s ty I e
* 一* i(_defaiji Rt.} I * * I * : ' I ' —. 3 I " coxiu”
» 量 IT. j c h 26、t"W 量 Tl %1> ' — Lins? vvid^ In
O* 5It) | 寻ueIe「
> . Mnkk—n" Ih^l ja rRe r symltsoli
J cccu 暑 fd fffn Lilt > | st ring
* ' idl n.2ir Ixl czt .E ds cC o X tz►r J —一Ml m rlc e r 曰 d 目9-o ol or
, dijto' [ci ljIt > | * mocu* || t hr&e-eiom. e ni RGB ve-ct or || st ring
> . MEtk—te-h♦二c ■ ch-' l\ 27、/lorl
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。