1-2MATLAB运算基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-0.6667 -0.3333
》det(a) ans =
1.0000
-3
5、关系运算符 假设有:A=[1 2 -1 -5] < 小于 A<B > 大于 A>B <= 小于等于 A<=B >= 大于等于 A>=B == 等于 A=B ~= 不等于 A~=B
B=[0 2 3 1] ans=[0 0 1 1] A<1 ans=[0 0 1 1] ans=[1 0 0 0] A>1 ans=[0 1 0 0] ans=[0 1 1 1] ans=[1 1 0 0] ans=[0 1 0 0] ; A=1 ans=[1 0 0 0] ans=[1 0 1 1] ; A~=1 ans=[0 1 1 1]
第二节 MATLAB运算基础
1、变量与常量
(1)常量(特殊的变量) • eps — 容差变量,定义为1.0到最近浮点数 的距离,在 pc机上= 2-52 • pi — 圆周率的近似值3.1415926 • inf或Inf — 表示正无穷大,定义为1/0 • NaN — 非数,它产生于0× ,0/0,/ 等运算 • i,j — 虚数单位 • ans — 对于未赋值运算结果,自动赋给ans
利用函数建立数值矩阵:MATLAB提供了许 多生成和操作矩阵的函数,可以利用它们去建立 矩阵。
(1)用线性等间距生成向量矩阵(start:step:end) 》a=[1:2:10] 其中start为起始值,step为步长,end为终止 值。当步长为1时可省略step参数;另外step也 a= 可以取负数。 1 3 5 7 9
(4)变量赋值
MATLAB赋值语句有两种形式: (1) 变量=表达式 (2) 表达式 其中“表达式”是用运算符将有关运算量连接起 来的式子,其结果是一个矩阵。 [注] 第二种语句形式下,将表达式的值赋给 MATLAB的永久变量ans。 在一条语句中,如果表达式太复杂,一行写不下 ,可以加上三个小黑点并按下回车键,然后接下去 再写。例如:s=1-1/2+1/3-1/4+1/5-1/6+1/7-… - 1/8+1/9-1/10+1/11-1/12;
(2)a=linspace(n1,n2,n) •在线性空间上,行矢量的值从n1到n2,数据个数为n,缺省 n为100。 》a=linspace(1,10,10) a= 1 2 3 4 5 6 7 8 9 10
(3)a=logspace(n1,n2,n) •在对数空间上,行矢量的值从10n1到10n2, 数据个数为n,缺省n为50。这个指令为建立 对数频域轴坐标提供了方便。 》a=logspace(1,3,3) a= 10 100 1000 (4)一些常用的特殊矩阵 单位矩阵:eye(m,n); eye(m) 零矩阵:zeros(m,n); zeros(m) 一矩阵:ones(m,n); ones(m) 对角矩阵:对角元素向量 V=[a1,a2,…,an] A=diag(V) 随机矩阵:rand(m,n)产生一个m×n的均匀分别的随机 矩阵
》eye(2,3) 》eye(2) ans= ans= 100 10 010 01 》zeros(2) 》zeros(2,3) ans= ans= 00 000 00 000 》ones(2) 》ones(2,3) ans= ans= 11 111 11 111 》V=[5 7 2]; A=diag(V) 如果已知A为方阵,则V=diag(A)可以提 取A的对角元素构成向量V。 A= 500 070 002
6、逻辑运算符
注意:在处理逻辑运算时,运算元只有两个值即0和1,所以如 果指定的数为0,MATLAB认为其为0,而任何数不等于0,则 认为是1。
设有:A=[5 -4 0 -0.5]
B=[0 1 0 9]
& 与 只有同为真时才为真,近似于乘法 A&B=[0 1 0 1] A&1=[1 1 0 1] 只有同为假时才为假,近似于加法 | 或 A|B=[1 1 0 1] A|1=[1 1 1 1]
》b=[1+2i 2-7i].'
b= 1.0000 + 2.0000i
2.0000 - 7.0000i
2、四则运算与幂运算
+ ;- ;* ;\和/ ;^; .* ;.\ ;./;.^ 如:a=[1 2;3 4];b=[ 3 5; 5 9] 》c=a+b d=a-b 》c= d= 4 7 -2 -3 8 13 -2 -5 》a*b=[13 23; 29 51] 》a/b=[-0.50 0.50;3.50 –1.50] 》a\b=[-1 -1;2 3] 》a^3=[37 54; 81 118] 》a.*b=[3 10;15 36] 》a./b=[0.33 0.40;0.60 0.44] 》a.\b=[3.00 2.50;1.67 2.25] 》a.^3= [1 8; 27 64]
2.矩阵元素提取
MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和 重排子块的操作。 A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,[n1,n2]):提取第m1行到第m2行的第n1列和 第n2列的所有元素(提取子块)。 A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。 矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数 (赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个 数,而且在其他没有指定的位置补零。 消除子块:如果将矩阵的子块赋值为空矩阵[ ],则相当于消除了相应 的矩阵子块。
(3)简单的数学运算
1、常用的数学运算符 +,—,*(乘),/(左除),\(右除),^(幂) 在运算式中,MATLAB通常不需要考虑空格;多条命令可 以放在一行中,它们之间需要用分号隔开;逗号告诉 MATLAB显示结果,而分号则禁止结果显示。
2、常用数学函数 abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real, sign,log,log10,conj(共扼复数)等
(2)变量
•变量的命名:变量的名字必须以字母开头(不能 超过19个字符),之后可以是任意字母、数字或 下划线;变量中不能包含有标点符号 •在命令窗口中,同时存储着输入的命令和创建的 所有变量值,它们可以在任何需要的时候被调用。 如要察看变量a的值,只需要在命令窗口中输入 变量的名称即可:》a •变量名区分大小写
~ 非 ~A=[0 0 1 0]
相同为假,不同为真
~1=0
练习题:
1、A=[3 1 1 ; 2 1 2 ; 1 2 3] B=[1 1 -1; 2 –1 0 ; 1 –1 1] 求 (1) 2A+B (2) AB-BA 2、求X,满足X-2A=B-X。其中:A=[2 -1 B=[0 -2
-1 2]
1.建立矩阵
建立矩阵可以用:直接输入法、利用函数建立 矩阵和利用M文件建立矩阵。 直接输入法:将矩阵的元素用方括号括起来,按矩 阵行的顺序输入各元素,同一行的各元素之间用空格 或逗号分隔,不同行的元素之间用分号分隔。(也可以 用回车键代替分号) 例如,键入命令: A=[1 2 3;4 5 6;7 8 9] 输出结果是: A = 1 2 3 4 5 6 7 8 9
3、求解: 2a-3b+2d=8 a+5b+2c+d=2 3a-b+c-d=7 4a+b+2c+2d=12
-2 0]
ຫໍສະໝຸດ Baidu
3.矩阵运算
1、转置:对于实矩阵用(’)符号或(.’)求转置 结果是一样的;然而对于含复数的矩阵,则(’)将 同时对复数进行共轭处理,而 (.’)则只是将其排列 形式进行转置。
》b=[1+2i 2-7i]'
》a=[1 2 3;4 5 6]'
a= 1 2 3 4 5 6
b=
1.0000 - 2.0000i 2.0000 + 7.0000i
》a=1; b=2; c=3; 》x=[5 b c; a*b a+c c/b] x= 5.000 2.000 3.000 2.000 4.000 1.500
》y=[2,4, 5 3 6 8] y= 245 368
矩阵生成不但可以使用纯数字(含复数),也可以使用 变量(或者说采用一个表达式)。矩阵的元素直接排列 在方括号内,行与行之间用分号隔开,每行内的元素使 用空格或逗号隔开。大的矩阵可以用分行输入,回车键 代表分号。
• 只有维数相同的矩阵才能 进行加减运算。 • 注意只有当两个矩阵中前 一个矩阵的列数和后一个 矩阵的行数相同时,才可 以进行乘法运算。a\b运算 等效于求a*x=b的解;而 a/b等效于求x*b=a的解。 只有方阵才可以求幂。 • 点运算是两个维数相同矩 阵对应元素之间的运算
3、逆矩阵与行列式计 算 求逆:inv(A); 求行列式:det(A) 要求矩阵必须为方阵
》a=[1 2 3; 4 5 6; 2 3 5]; 》b=inv(a)
4、矩阵翻转 •rot90(A)表示将矩阵A逆时针 旋转90度。 •flipud(A)表示将矩阵A上下旋 转。 •fliplr(A)表示将矩阵A左右旋转
b=
-2.3333 2.6667 0.3333 1.0000
0.3333 -2.0000
2、矩阵的Matlab表示
• 矩阵是MATLAB最基本的数据对象,MATLAB的大部 分运算或命令都是在矩阵运算的意义下执行的。 • 在MATLAB中,不需对矩阵的维数和类型进行说明, MATLAB会根据用户所输入的内容自动进行配置。 • 标量是作为1*1的矩阵来处理的,当矩阵的行或列为 1时,就成了向量。 • 矩阵的元素通常为实数或复数,也可以是字符串