第二章matlab矩阵运算
第2章__MATLAB矩阵及其运算
3.利用冒号表达式建立一个向量(增量赋值) .利用冒号表达式建立一个向量(增量赋值) 冒号表达式可以产生一个行向量,标准格式是: 冒号表达式可以产生一个行向量,标准格式是: x=e1:e2:e3 其中e1为初始值 为初始值, 为步长 为步长, 为终止值 为终止值。 其中 为初始值,e2为步长,e3为终止值。
2、矩阵变量的性质 、 矩阵变量的维数可以用size( )函数获得: 函数获得: 矩阵变量的维数可以用 函数获得 例: 矩阵标识符为[ , 矩阵标识符为 ],如 果是1*1矩阵,则可以 矩阵, 果是 矩阵 省略矩阵标识符; 省略矩阵标识符; 矩阵变量的各行之间 用分号隔开, 用分号隔开,列之间 用逗号或空格隔开;
计算表达式的值,并显示计算结果。 例2-1 计算表达式的值,并显示计算结果。 在MATLAB命令窗口输入命令: 命令窗口输入命令: 命令窗口输入命令 x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 其中pi和 都是 都是MATLAB预先定义的变量, 预先定义的变量, 其中 和i都是 预先定义的变量 分别代表代表圆周率π和虚数单位。 分别代表代表圆周率 和虚数单位。 和虚数单位 输出结果是: 输出结果是: z= -0.3488 + 0.3286i
2.1.1 变量与赋值语句
在matlab中,变量定义为矩阵是最基本的变量定 中 义之一,因此, 义之一,因此,matlab语言的运算是基于矩阵的 语言的运算是基于矩阵的 运算。 运算。
1.变量命名 .
变量名是以字母开头, 在MATLAB 中,变量名是以字母开头,后接字 母、数字或下划线的字符序列。在MATLAB中, 数字或下划线的字符序列。 中 变量名区分字母的大小写, 变量名区分字母的大小写,且自定义的变量名最 好不要和matlab中的专用变量及函数同名。 中的专用变量及函数同名。 好不要和 中的专用变量及函数同名 A=3; a=3; _q=4; a_1=5; B=[1 2;3 4]
matlab第二章矩阵运算基础
南京信息工程大学
4
例2.1 创建矩阵
>>x=[1 2 3;4 5 6;7 8 9] >>x=[1 2 3 456 7 8 9] >>x=[a b c;e f g;u v w] >>x=[1 2 3;4 5 6]; y=[2 3 4;5 6 7] >>Q=x*y >>a=2;b=3 >>x=a*b
2010-12-29
2010-12-29 南京信息工程大学 6
2.1 矩阵的创建
2、 赋值语句 MATLAB赋值语句有两种格式:
变量=表达式(或数) 表达式
2010-12-29
南京信息工程大学
7
【例2.2】 x=[1,2,3;4,5,6;7,8,9] 与[1,2,3;4,5,6;7,8,9]。
5 + cos 47
【例2.3】计算
2010-12-29
南京信息工程大学
25
§2.2 矩阵和数组的算术运算 六、点运算
C=A.*B C=A.\B
C=A./B C=A.^B
2010-12-29
南京信息工程大学
26
§2.2 矩阵和数组的算术运算 七、幂运算
C=A^B C=A.^B
2010-12-29
南京信息工程大学
27
例2.12 例2.13 例2.14 例2.15
find(x)
检查x是 否全为1
南京信息工程大学 42
2010-12-29
例2.20 建立矩阵A,然后找出大于4的元素位置 (1)建立A >>A=[4 -6 5 -54 0 6 56 0 67 -45 0] (2)找出大于4的元素位置 >>find(A>4)
第二章 MATLAB的基础语法-矩阵与画图
2.1.4 矩阵的运算
1. MATLAB中矩阵运算符: + 加法;- 减法;’ 转置;* 乘法;^ 乘幂;\ 左除;/ 右除。 2. 注意:它们要符合矩阵运算的规律,如果矩阵的行 列 数不符合运算符的要求,将产生错误信息。 3. 举例:左除和右除的用法: 设A是可逆矩阵, ①、AX=B 的解是A 左除B,即 X=A\B
>>A(1:2:3,4:-1:2)↙ >>D(:,1)=[]↙%删除D的第1列,[ ]为空集符号 D= 0 1
2. 矩阵的拼接
定义:将几个矩阵接在一起称为拼接。 注意:左右拼接时行数相同,上下拼接时列数相同。
例题
>>E=[D,zeros(2,1)]↙ E = 2 3 0 5 6 0
2 3 D= 5 6
d =
e = -1.2000
3.1000
0
3.1000
4.0000
6.0000
2.4.3 矩阵函数
MATLAB有大量的 处 理矩阵的函数,从其作用 来 看可分为 两 类: 构造矩阵的函数;进行矩阵计算的函数。对于前者,我们已经 介绍了
构造矩阵的函数
eye(单位阵)
zeros(0阵)
ones(1阵)
2.4.2 向量函数
有些函数只有当它们作用于(行或列)向量时才有意义,称为 向量函数,这些函数也可以作用于矩阵,此时它产生一个行向 量,行向量的每个元是函数作用于矩阵相应列向量的结果。常 用的有: max,min,sum( 和 ) , length( 长 度 ) ,mean( 平 均 值 ) median(中值),prod(乘积),sort(从小到大排列) 例 >>a=[4 3.1 -1.2 0 6]; b=min(a),c=sum(a),d=median(a),e=sort(a) ↙ b = c = 11.9000 -1.2000
Matlab矩阵运算基础数值运算
data =
1.1000 3.0000 4.0000
2.3000 2.0000 1.0000
.
13
3.2 矩阵运算
主要介绍矩阵的算术运算、关系运算、逻辑 运算和常用的有关矩阵的其他运算(矩阵的 逆,矩阵的秩、矩阵的分解等)。
.
14
3.2.1 矩阵的算术运算
1、矩阵的加(+)减(-)运算:
A±B 矩阵A和矩阵B的和与差,即矩阵相应 位置的元素相加、减。
>> A=magic(3)
D=
A= 816
0.5492 0.2421 -0.6520 0.9075
357
1.0047 -0.4941
492
>> C*D
>> B=inv(A)
ans =
B=
1.0000 0.0000
0.1472 -0.1444 0.0639
0.0000 1.0000
-0.0611 0.0222 0.1056
~ A 对单个矩阵或标量进行取反运算,结果是0-1矩阵。
.
28
3.2.3 矩阵的逻辑运算
例3-11 1 0 3
1 2 0
A2.6 1 2, B0 5 0
0 3 1
1 0 1
计算 A&B, A|B, ~A Nhomakorabea.
29
3.2.4 矩阵函数
1、矩阵的共轭
MATLAB中求矩阵的共轭矩阵的函数是conj,其 调用格式为:
除或浮点溢出都不按错误处理,只是给出警告信息,同时用“Inf”
标记。
.
20
3.2.1 矩阵的算术运算
4、 矩阵的幂运算:^ A^B A的B次方。
MATLAB矩阵及运算
点乘——元素对元素乘法 叉乘——矩阵对矩阵乘法
对比举例
矩阵的右除、左除
MATLAB的基本处理单元是复数矩阵(标量是一 个1*1的矩阵)。而在《线性代数》理论中没有除 法运算。所以定义了除法为乘法的逆运算。
注意:因为矩阵乘法不满足交换律,即一般 A*B≠B*A,所以除法要考虑“右除”、“左 除”。
2.1.2 变量
变量的命名规则: 1)变量名、函数名对字母的大、小写敏感。 2)变量名由字母、数字和下划线构成。第一个
字母必须是英文字母。 3)有字符个数限制(版本5.0 :最多31个字符)
2.1.2 变量
MATLAB系统默认变量
重点
(注意大小写!)
i或j:
虚单元 正确:5+7j 错误:5+j7
2.1表达式
表达式 (即语句):将变量、数值、函数 用操作符连接起来,就构成了表达式 。
例如:a=(10j+sqrt(10))/2; %注释 ☆行末的“;”用于抑制结果在屏幕上显示
例如: sin(a),sin(b) ,a+b ☆同在一行的表达式,必须用“,”分开
2.2 矩阵的产生与操作
矩阵的产生:
A./Baa31//b b1 3
a2/b2 a4/b4
B.\A
A.\Bbb31//aa13 bb42//aa42B./A
分析:
K/N=K*inv(N)
因为N不是方阵,没有逆 阵,所以报告错误。
K\N=inv(K)*N
因为K的逆阵尺寸2×2, N的尺寸2×3,所以结 果矩阵2×3。
矩阵元素的指数运算
这种战略取得了成功:使人们不在编程细节上化 精力,把注意力集中到科学计算的方法和建模合理性等 大问题上。
MATLAB基础教程 第2章 数组、矩阵及其运算
写出MATLAB表达式。 解:根据MATLAB的书写规则,以上MATLAB表达式为: (1)y=1/(a*log(1-x-1)+C1) (2)f=2*log(t)*exp(t)*sqrt(pi) (3)z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y))) (4)F=z/(z-exp(T*log(8)))
命令:X(3:-1:1)
命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.1 数组(矩阵)的创建和寻访
2. 二维数组的创建和寻访
例2-3 综合练习。将教材P.31~P.44的实例按顺序在MATLAB的 command窗口中练习一遍,观察并体会其输出结果。 (注意变量的大小写要和教材上的严格一致。)
A./B
B.\A
A的元素被B的对应元素相除
(与上相同)
第二章 数组、矩阵及其运算
2.3 数组、矩阵的其他运算
1. 乘方开方运算
数组的乘方运算与power函数 格式:c=a.^k或c=power(a,k) 例如: >> g=[1 2 3;4 5 6] >>g.^2 矩阵的乘方运算与mpower函数 格式:C=A^P或C=mpower(A,P) 注意:A必须为方阵
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的加法、减法
运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算, A和B矩阵的相应元素相加减。如果维数不相同,则MATLAB将给出
出错信息。
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的乘法
第2章 matlab矩阵及其运算
第2章 MATLAB 矩阵及其运算
2.1.2 MATLAB常用数学函数
MATLAB提供了许多数学函数,函
数的自变量规定为矩阵变量,运算法
则是将函数逐项作用于矩阵的元素上, 因而运算的结果是一个与自变量同维
数的矩阵。
11/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
1. 三角函数 • sin 正弦函数 • asin 反正弦函数 • cos 余弦函数 • tan 正切函数 • cot 余切函数 • sec 正割函数 • csc 余割函数
在MATLAB命令口输入命令:
x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
其中pi和i都是MATLAB预先定义的变量,分别
代表代表圆周率π和虚数单位。 输出结果是:
z =
-0.3488 + 0.3286i
10/128 MALAB 7.X程序设计
18/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
rem与mod的区别
rem(x,y)=x-y.*fix(x./y)
mod(x,y)=x-y.*floor(x./y)
eg: >>x=5;y=3; >>y1=rem(x,y),y2=mod(x,y) >> x=-5;y=3; >>y1=rem(x,y),y2=mod(x,y)
%绝对值 %取复数虚部 %取复数实部 %复数共轭
16/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
4. 取整函数 fix(x) 朝零方向取整 floor(x) 朝负无穷大方向取整 ceil(x) 朝正无穷大方向取整 round(x)四舍五入 mod(x,y) rem(x,y)取x/y的余数要求x,y 必须为相同大小的实矩阵或为标量。 eg: x=5.3 x=-5.3 -5.3 -5 0 5 5.3
MATLAB第二章
2 特殊数据判断函数
常用的特殊数据判断函数:
• isinf(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为无穷大inf时设置为1, 否则为0。 • isnan(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为NaN 时设置为1,否 则为0。 • isfinite(A) 返回一个与A同型的数组,该数组元素 的值根据A的相应位置元素的值为有限值时设置为1, 否则为0。
关系运算规则
关系运算符的运算法则为: • 1 当两个比较量是标量时,直接比较两数的大 小。若关系成立,关系表达式结果为1,否则 为0。 • 2 当参与比较的量是两个同型的矩阵时,比较 是对两矩阵相同位置的元素按标量关系运算规 则逐个进行,并给出元素比较结果。最终的关 系运算的结果是一个与原矩阵同型的矩阵,它 的元素由0或1组成。
当a=[pi NaN Inf -Inf]时,分析下列 语句的执行结果
• isinf (a) • isnan (a) • isfinite (a)
例 当A=[-6,NaN,Inf,5;-Inf,-pi, eps,0] 时,分析下列语句的执行结果。 • • • • • • • all(A) all(all(A)) any(A) any(any(A)) isnan(A) isinf(A) isfinite(A)
例
建立任意的3×3的矩阵,并求 出能被3整除的元素。
9 -1;-3 -9 0];
A=[1 0 3 ;2
%生成3×3的矩阵A P=rem(A,3)==0
%判断A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩阵中能被5整除的元素呢? P=rem(A,5)==0
例 求三阶魔方矩阵中绝对值大于7的元素。 a=magic(3);
matlab02_Matrix矩阵运算
—— 矩阵运算
1
本讲主要内容
Kronecker 乘积
数组运算 函数的使用 变量的输入输出
2
Kronecker 乘积
矩阵 Kronecker 乘积的定义
设 A 是 n×m 矩阵,B 是 p×q 矩阵,则 A 与 B 的 kronecker 乘积为:
a11 B a12 B a B a B 22 C A B 21 an1 B an 2 B a1m B a2 m B anm B
17
上机作业
1、自己练习,体会各种数学函数的使用 (不用上交) 2、写出可以完成下列任务的Matlab命令 (需上交) :
(1)生成列向量 x = [10-10,10-9, ..., 10-1, 1, 2, 4, 6, 8, … , 80] (2)数列 x 同(1),求数列 y 使得 yi=sin(xi)/xi (3)产生一个 1 到 10 的随机整数排列 S1(参见教材 P143-144) (4)产生一个含有10 个不超过 10 的随机均匀整数的序列 S2 (参见教材 P143-144), 问:S1与S2是否相同? (5)利用函数 rand 生成一个含有满足均匀分布的 4 阶随机整数方阵A, 元素都是 0~100 之间的整数 (6)生成一个与 A 同阶的满足正态分布的随机矩阵 B (7)计算 A 的转置 与 B 的下三角部分的 kronecker 乘积 C (8)生成由 B 与其同阶魔方矩阵点乘得到的矩阵 D (9)求出矩阵 D 中绝对值最大的元素的绝对值 (10)删除 D 的第三行和第二列 (11)生成由 B 的第 2, 4, 5 行和第 4, 1, 4 列组成的子矩阵 E 18 (12)教材第 53 页,第 1 题(1-5)和第 5 题
MATLAB第二章_矩阵
●矩阵的创建1. 直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。
具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。
a=2.7358; b=33/79;C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]2. 利用冒号表达式建立一个向量冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。
在MA TLAB中,还可以用linspace函数产生行向量。
其调用格式为:linspace(a,b,n),其中a和b是生成向量的第一个和最后一个元素,n是元素总数。
显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。
3. 利用M文件建立矩阵对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。
特殊矩阵1. 通用的特殊矩阵zeros:产生全0矩阵(零矩阵)。
ones:产生全1矩阵(幺矩阵)。
eye:产生单位矩阵。
rand:产生0~1间均匀分布的随机矩阵。
randn:产生均值为0,方差为1的标准正态分布随机矩阵。
******1. 分别建立3×3、3×2和与矩阵A同样大小的零矩阵(1) 建立一个3×3零矩阵。
zeros(3)(2) 建立一个3×2零矩阵。
zeros(3,2)(3) 设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。
A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵Azeros(size(A)) %产生一个与矩阵A同样大小的零矩阵2. 建立随机矩阵:(1) 在区间[20,50]内均匀分布的5阶随机矩阵。
(2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。
命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)2.用于专门学科的特殊矩阵魔方矩阵、范得蒙矩阵、希尔伯特矩阵、托普利兹矩阵、伴随矩阵、帕斯卡矩阵●矩阵元素1.通过下标引用矩阵的元素A=[1,2,3;4,5,6];A(1,2)ans =22. 通过序号引用矩阵的元素A(3)ans =2序号(Index)与下标(Subscript )是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。
第2讲 MATLAB初步
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为1, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 阵。
各种 format 格式
格式 解释 例
format
format short format long
短格式(缺省显示格式),同short
短格式(缺省显示格式),只显示5位 长格式,双精度数15位,单精度数7位
3.1416
3.1416 3.14159265358979
format short e
format long e format short g format long g format compact format loose
(5) 伴随矩阵 MATLAB生成伴随矩阵的函数是 compan(p),其中p是一个多项式的系数向 量,高次幂系数排在前,低次幂排在后。 例如,为了求多项式的x3-7x+6的伴随矩阵, 可使用命令: p=[1,0,-7,6]; compan(p)
(6) 帕斯卡矩阵 我们知道,二次项(x+y)n展开后的系数随n 的增大组成一个三角形表,称为杨辉三角 形。由杨辉三角形表组成的矩阵称为帕斯 卡(Pascal)矩阵。函数pascal(n)生成一个n阶 帕斯卡矩阵。
2.1.3 内存变量的管理 1.内存变量的删除与修改
clear命令用于删除MATLAB工作空间中的变 量。who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清 单。who命令只显示出驻留变量的名称, whos在给出变量名的同时,还给出它们的 大小、所占字节数及数据类型等信息。
Matlab程序设计第2章矩阵及其运算
2.2.2 创建二维数组 方法2:用函数生成特殊矩阵
函数 zeros (全零阵) 格式 B = zeros(n) B = zeros(m,n) 函数 ones (全1阵) 格式 B = ones(n) B = ones(m,n) 函数 eye(单位矩阵) 格式 B = eye(n) B = eye(m,n) %生成n×n全零阵 %生成m×n全零阵
2.2.4二维数组的寻访与赋值
判断数组维数和大小 1) 判断数组维数的指令:ndims 2) 判断数组大小的指令:size 例如:上例中数组A的维数和大小分别为
>> An=ndims(A), As=size(A) An = 2 As = 3 3
表示数组A大小的行数组的长度 (As的长度) 等于数组A的 维数 (An),length(As)=An 数组A的长度指最长维的长度:length(A)=max(As)。
注意: 1) 子数组寻访取决于 x ( index )中的下标index。 2) 下标 index 可以是单个数值或数组,但是 index 的元素取 值必须在 [ 1 , end ] 的范围内。end 为数组最大下标。 3) 子数组赋值时,注意被赋值的子数组长度与送入的数组长 度一致。
2.2.4二维数组的寻访与赋值
%生成n×n全1阵 %生成m×n全1阵 %生成n×n单位阵 %生成m×n单位阵
2.2.2 创建二维数组 方法2:用函数生成特殊矩阵
函数 randn 格式 y = randn(n) y = randn(m,n) %生成n×n正态分布随机矩阵 %生成m×n正态分布随机矩阵
产生均值为0.6,方差为0.1的4阶矩阵 >> mu=0.6; sigma=0.1; >> x=mu+sqrt(sigma)*randn(4) x= 0.8311 0.7799 0.1335 1.0565 0.7827 0.5192 0.5260 0.4890 0.6127 0.4806 0.6375 0.7971 0.8141 0.5064 0.6996 0.8527
MATLAB矩阵及其运算
四川理工学院数学系 柏宏斌 制作
2011年2月16日星期三 1
版权所有2008年3月
第2章 MATLAB矩阵及其运算 章 矩阵及其运算 2.1 变量和数据操作 2.2 MATLAB矩阵 矩阵 2.3 MATLAB运算 运算 2.4 矩阵分析 2.5 矩阵的超越函数 2.6 字符串 2.7 结构数据和单元数据 2.8 稀疏矩阵
2011年2月16日星期三
6
clear命令用于删除 命令用于删除MATLAB工作空间中的变 命令用于删除 工作空间中的变 量。 who和whos这两个命令用于显示在 这两个命令用于显示在MATLAB 和 这两个命令用于显示在 工作空间中已经驻留的变量名清单。 工作空间中已经驻留的变量名清单。 who命令只显示出驻留变量的名称。 命令只显示出驻留变量的名称。 命令只显示出驻留变量的名称 whos在给出变量名的同时,还给出它们的大 在给出变量名的同时, 在给出变量名的同时 所占字节数及数据类型等信息。 小、所占字节数及数据类型等信息。
2011年2月16日星期三 8
———命令行编辑入门———-
MATLAB的变量管理 的变量管理 •用who检查 用 检查MATLAB内存变量 检查 内存变量 •鍵入 鍵入whos,获得驻留变量的详细情况:全部变量名,变 获得驻留变量的详细情况: 鍵入 获得驻留变量的详细情况 全部变量名, 量的数组维数,占用字节数,变量的类别(如双精度), 量的数组维数,占用字节数,变量的类别(如双精度), 是否复数等. 是否复数等. •变量的存取 变量的存取 >>save sa X Y Z %选择内存中的变量 选择内存中的变量X,Y,Z保存为 保存为 选择内存中的变量 sa.mat文件 文件 •清空内存 从sa.mat向内存装载变量 清空内存,从 向内存装载变量Z. 清空内存 向内存装载变量 >>clear %清除内存中的全部变量 清除内存中的全部变量 >>load sa Z %把sa.mat文件中的 变量装入内存 把 文件中的Z变量装入内存 文件中的 >>who %检查内存中有什么变量 检查内存中有什么变量 9 2011年2月16日星期三
matlab-第二章
1,在一个MA TLAB命令中,6+7i和6+7*i有何区别?i和I有何区别?第一个i代表一个变量,6+7i是一个函数,第二个代表虚数,6是实部,7代表虚步.I只代表变量.2,.设A和B是两个同大小的矩阵,试分析A*B和A.*B、A./B和B.\A、A/B和B/A的区别?如果A和B是两个标量数据,结论又如何?A *B是矩阵相乘,A.*B表示A和B单个元素之间对应相乘。
A./B和B.\A值相等,是一样的。
A/B等效于B的逆右乘A的矩阵,B\A等效于B矩阵逆左乘A矩阵。
如果A和B是两个标量数据,结论是都没有区别。
3,写出完成下列操作的命令。
(1)删除矩阵A的第7号元素A(7)=[](2)将向量t的0元素用机器零来代替t(find(t==0))=eps(3)将含有12个元素的向量x转换成3*4矩阵newA=reshape(A,3,4)(4) 求一个字符串的ASCIIch=['a b c';'1 2 3'];abs ch(5) 产生和A同样大小的幺矩阵ones(size(A))(6) 从矩阵A提取主对角线元素,并以这些元素构成对角阵B。
A=[1 2 3;4 5 6;7 8 9];D=diag(A)B=diag([1,5,9])4, .要生产均值为3,方差为1的500个正态分布的随机序列,写出相应的表达式y=3+sqrt(1)*randn(500)5,(1)主对角元素1 1 5 9上三角矩阵1 -1 2 30 1 -4 20 0 5 20 0 0 9下三角矩阵1 0 0 05 1 0 03 0 5 011 15 0 9逆矩阵-0.1758 0.1641 0.2016 -0.0227-0.1055 -0.1016 -0.0391 0.0664-0.0508 -0.0859 0.1516 0.00230.3906 -0.0313 -0.1813 0.0281行列式的值1280秩4范数A1=norm(A,1)=20 A2=norm(A)= 21.3005 A3=norm(A,inf)=35条件数A1=cond(A,1)= 14.4531 A2=cond(A,2)= 11.1739 A3=cond(A,inf)= 22.0938迹16(2)主对角元素0.43 4上三角矩阵0.4300 43.0000 2.00000 4.0000 21.0000下三角矩阵0.4300 0 0-8.9000 4.0000 0逆矩阵0.0022 -0.01750.0234 -0.0017-0.0035 0.0405行列式的值秩2范数B1=norm(B,1)= 47 B2=norm(B)= 43.4271 B3=norm(B,inf)= 45.4300 条件数B2=cond(B,2)= 1.9354迹4.43006,all(A)=0any(A)=1isnan(A)= 0 1 0 0 0 0 0isinf(A)= 0 0 1 1 0 0 0isfinite(A)= 1 0 0 0 1 1 1。
第2章 MATLAB矩阵及其运算 [MATLAB大学教程][肖汉光,邹雪,宋涛]
2.1 MATLAB的特殊量(预定义变量)
变量名 pi eps i或j nargin nargout realmin realmax bitmax Inf
NAN
ans
用法 圆周率π 机器的浮点运算误差限,2.2204e-016,若 |x|<eps,则可认为x=0 虚数单位
m函数入口参数变量,记录实际输入变量个数
>> load file2.mat B; 内存
%只将变量B从在file2.mat文件中载入到
>> load file2.mat; 入到内存
%默认将所有变量从在file2.mat文件中载
按格式2,在命令窗口输入命令:
>> A=rand(3,3);
>> B=rand(3,3);
>> save('file1.mat','-mat','A'); %将变量A存储以二进制格式写入file1.mat 文件
命令窗口输入命令:
>>x=30*pi/180;
>> a=sin(x); >> format short %设置显示格式为short
>> a >> format rat
%设置显示格式为rat
>> a >> format long
%设置显示格式为long
>> a >> format
%设置为初始默认状态
>> a
第二章 MATLAB矩阵及其运算
MATLAB 的特殊量 MATLAB变量 MATLAB数组与矩阵 MATLAB矩阵的运算和操作 MATLAB矩阵分析与处理
第2章 MATLAB矩阵及其运算
物理科学与工程技术学院
3.除了可以把数值直接赋给变量,还可以将表达式, 矩阵赋给变量 【例2-4】变量的赋值举例如下: a=[1 4 7] B=abs(6+13i) C=[]
MATLAB的运行结果如下: a= 1 4 7 B= 14.3178 C= [] 注:当表达式的结果赋给变量时,而没有定义变量。系统默认 为ans。
物理科学与工程技术学院
7.MATLAB内存变量的管理
(1)在创建和修改数组时利用连续内存保存相关 的变量 在MATLAB中,通常利用内存中存在的连续虚拟 块为数组赋值时的内存分配,但是数组的类型和维 数作为数组的头信息保存在其它的地方(即两者没 有存放在同一连续的内存区域)。
数值计算与MATLAB语言 –Chen Z.H, P29
MATLAB的运行结果如下:
数值计算与MATLAB语言 –Chen Z.H, P27
物理科学与工程技术学院
3 2.5 2 1.5 1
1
1.5
2
2.5
3
3.5
4
2 1.5 1 0.5 0
1
1.5
2
2.5
3
3.5
4
图2.5 subplot运行结果
数值计算与MATLAB语言 –Chen Z.H, P28
物理科学与工程技术学院
下面对向量a进行长度的求解。 n=length(a)
MATLAB的运行结果如下: n= 10
利用MATLAB中的who命令显示MATLAB中 的变量名。 who a
MATLAB的运行结果如下: Your variables are: a
数值计算与MATLAB语言 –Chen Z.H, P14
matlab第二章
ceil(1.8)=2
4)round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=2;round(1.3)=1;round(1.52)=2。
MATLAB 中的变量不需要事先定义,在 遇到新的变量名时,MATLAB会自动建立该变 量并分配存储空间。当遇到已存在的变量时, MATLAB会更新其内容,如有必要会重新分配
存储空间。
下一页
变量名由字母、数字和下划线构成, 并且必须以字母开头,最长为31个字符。 MATLAB能区分大小写字母,变量A和a是
例如: if a>1
disp('a>1')
elseif a==1
disp('a=1')
else disp('a<1') end 上一页 返回
3、逻辑函数
MATLAB提供了许多测试用的逻辑函数,
主要有all、any、find、exist、is*等。
返回
all函数
利用all函数可以测定矩阵每列所有
元素是否非零。若该列所有元素非零,则
利用重复函数repmat可以将小矩阵以
重复的形式产生大矩阵。
例如: f=repmat(a,2,3)
3、矩阵缩小 将大矩阵变成小矩阵的方法有两种: 抽取法和删除法。 (1)抽取法是指从大的矩阵中抽取中 的一部分,从而构成新的矩阵。例如: a=[1:4; 5:8; 9:12; 13:16] b=a(2:3, 3:4) c=a([1 4],[1 3]) d=a([2 4],[1 3])
第2章 MATLAB矩阵及其运算
(4) 矩阵的乘方 一个矩阵的乘方运算可以表示成A^x,要
求A为方阵,x为标量。 2.点运算
在MATLAB中,有一种特殊的运算,因 为其运算符是在有关算术运算符前面加点, 所以叫点运算。点运算符有.*、./、.\和.^。 两矩阵进行点运算是指它们的对应元素进 行相关运算,要求两矩阵的维参数相同。
2.赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接 起来的式子,其结果是一个矩阵。
例2-1 计算表达式的值,并显示计算结果。 在MATLAB命令窗口输入命令:
x=1+2i;
y=3-sqrt(17);
z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 其中pi和i都是MATLAB预先定义的变量, 分别代表代表圆周率π和虚数单位。 输出结果是:
第2章 MATLAB矩阵及其运算 2.1 变量和数据操作 2.2 MATLAB矩阵 2.3 MATLAB运算 2.4 矩阵分析 2.5 矩阵的超越函数 2.6 字符串 2.7 结构数据和单元数据 2.8 稀疏矩阵
2.1 变量和数据操作
2.1.1 变量与赋值 1.变量命名 在MATLAB 6.5中,变量名是以字母开头, 后接字母、数字或下划线的字符序列,最 多63个字符。在MATLAB中,变量名区分 字母的大小写。
(2) 利用空矩阵删ห้องสมุดไป่ตู้矩阵的元素 在MATLAB中,定义[]为空矩阵。给变
量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删
除,而空矩阵则存在于工作空间中,只是 维数为0。
MATLAB第二章_矩阵_练习
第2章 MATLAB 矩阵运算基础2.1 在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ?2.2 有几种建立矩阵的方法?各有什么优点?2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?2.4 数组运算和矩阵运算的运算符有什么区别?2.5 计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
2.6 求⎥⎦⎤⎢⎣⎡+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。
2.7 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2.8 “左除”与“右除”有什么区别?2.9 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
2.10 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
2.11 ⎥⎦⎤⎢⎣⎡-=463521a ,⎥⎦⎤⎢⎣⎡-=263478b ,观察a 与b 之间的六种关系运算的结果。
2.12 []7.0802.05--=a ,在进行逻辑运算时,a 相当于什么样的逻辑量。
相当于a=[1 1 0 1 1]。
2.13 在sin(x )运算中,x 是角度还是弧度?2.14 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
2.15 用四舍五入的方法将数组[2.4568 6.39823.9375 8.5042]取整。
2.16 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=728365219a ,分别对a 进行特征值分解、奇异值分解、LU 分解、QR 分解及Chollesky 分解。
2.17 将矩阵⎥⎦⎤⎢⎣⎡=5724a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即[]296531877254。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
diag(A,k)
说明: 说明 1.若参数 为m×n阶矩阵 若参数A 阶矩阵,diag函数提取矩阵的对角线元素 参数 取整数 函数提取矩阵的对角线元素,参数 取整数, 若参数 × 阶矩阵 函数提取矩阵的对角线元素 参数k取整数 表示提取第k条对角线元素 缺省时提取主对角线元素,返回值是一个具有 条对角线元素,缺省时提取主对角线元素 表示提取第 条对角线元素 缺省时提取主对角线元素 返回值是一个具有 min(m,n)个元素的列向量 个元素的列向量 2. 若参数 为一具有 个元素的向量 参数 缺省 则diag函数返回值为对角 若参数A为一具有 个元素的向量,参数 缺省,则 为一具有m个元素的向量 参数k缺省 函数返回值为对角 矩阵,其主对角线元素为向量 的元素;若是一个非 整数,则返回值是一个 其主对角线元素为向量A的元素 若是一个非0整数 矩阵 其主对角线元素为向量 的元素 若是一个非 整数 则返回值是一个 n×n(n=m+abs(k))对角阵 其第 条对角线元素为向量 的元素 对角阵,其第 条对角线元素为向量A的元素 × 对角阵 其第k条对角线元素为向量
三角阵的定义: 三角阵的定义
三角阵又进一步分为上三角阵和下三角阵, 三角阵又进一步分为上三角阵和下三角阵,所谓 上三角阵,即矩阵的对角线以下的元素全为0的 上三角阵,即矩阵的对角线以下的元素全为 的 一种矩阵,而下三角阵则是对角线以上的元素全 一种矩阵, 的一种矩阵。 为0的一种矩阵。 的一种矩阵
Matlab中创建对角阵的函数为diag,它 的调用格式:
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
创建三角阵的函数为triu,tril,它们的调用格 式格式完全相同:
triu(A,k) tril(A,k)
说明: 说明 1.参数A为被提取的矩阵,参数k取整数表示矩阵A中对角线的序号,返 回值上三角阵, 其元素是矩阵A的第k条对角线以上的元素. 2.Tril与triu类似
用matlab函数创建矩阵
rand —— 随机矩阵 eye —— 单位矩阵 zeros ——全部元素都为0的矩阵 ones ——全部元素都为1的矩阵 [ ]空阵 — matlab允许输入空阵,当一项 操作无结果时,返回空阵。
对角矩阵、伴随矩阵、稀疏矩阵、魔方 矩阵、范德蒙等矩阵的创建,就不一一介 绍了(MATLAB help matrix)。
5. 矩阵的数组运算(点运算)
数组运算指元素对元素的算术运算,与 通常意义上的由符号表示的线性代数矩阵运 算不同
① 数组加减
a+b a-b
对应元素相加减
.∗, , ) ②数组乘除(.∗,./,.\) 数组乘除 .∗
a.∗b — a,b两数组必须有相同的行和列两 数组相应元素相乘。 a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10]; a.*b ans = 2 8 18 4 15 30 49 72 90
a=[1 2 3;4 5 6] x=[2 pi/2;sqrt(3) 3+5i]
3. 矩阵的修改
直接修改 可用↑键找到所要修改的矩阵,用←键移动 到要修改的矩阵元素上即可修改。 指令修改 可以用A(∗,∗)= ∗ 来修改(赋值,见MATLAB help Matrix)。
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
102 126 150
※当一个方阵有复数特征值或负实 特征值时,非整数幂是复数阵。
a^0.5 ans =
0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1.9503 - 0.1611i 2.3134 + 0.2717i
a=[1 2 3;4 5 6;7 8 9]; b=[2 4 6;1 3 5;7 9 10];
a*b ans = 25 55 85
37 85 133
46 109 172
a./b=b.\a —— 给出a,b对应元素间的商. a.\b=b./a a./b=b.\a — 都是a的元素被b的对应元 素除 a.\b=b./a — 都是b的元素被a的对应元 素除
先建立5× 矩阵 矩阵A,然后将A的第一行元素乘 例: 先建立 ×5矩阵 ,然后将 的第一行元素乘 以1,第二行乘以 ,…,第五行乘以 。 ,第二行乘以2, ,第五行乘以5。
A=rand(5), d=diag(1:5),y=d*A
A= 0.2028 0.1987 0.6038 0.2722 0.1988 y= 0.2028 0.3974 1.8114 1.0888 0.9941 0.0153 0.7468 0.4451 0.9318 0.4660 0.0153 1.4936 1.3353 3.7273 2.3300 0.4186 0.8462 0.5252 0.2026 0.6721 0.4186 1.6924 1.5755 0.8106 3.3607 0.8381 0.0196 0.6813 0.3795 0.8318 0.8381 0.0393 2.0438 1.5179 4.1590 0.5028 0.7095 0.4289 0.3046 d = 0.1897 1 0 0 0.5028 0 1.4189 0 1.2867 1.2185 0.9483
a ^ p —a 自乘p次幂(相当于a*a*……*a)
方阵 >1的整数 的整数
对于p的其它值,计算将涉及特征值 和特征向量,如果p是矩阵,a是标量 a^p使用特征值和特征向量自乘到p次 幂;如a,p都是矩阵,a^p则无意义。
a=[1,2,3;4,5,6;7,8,9];a^2 ans =30 66 36 81 42 96
例: a=[1 2 3];b=[4 5 6]; c1=a.\b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000
③数组乘方(.^) — 元素对元素的幂 数组乘方
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
9.00
729.00
6. 矩阵的其它运算
inv —— 矩阵求逆 det —— 行列式的值 eig —— 矩阵的特征值 diag —— 对角矩阵
’ —— 矩阵转置 sqrt —— 矩阵开方
P36Байду номын сангаас2—3表
关系运算
关系符号 意义 < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 ~= 不等于
逻辑运算
关系符号 意义 & | ~ 与 或 非
其他逻辑关系函数p36 2-2表
四.矩阵的一些特殊操作
矩阵的变维 a=[1:12];b=reshape(a,3,4) 矩阵的变向 c=zeros(3,4);c(:)=b(:) rot90:逆时针旋转; fliplr:左右翻; flipud:上下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角 矩阵的扩展
load —— load data —— load data a b ——
即可装载保 存过的所有 变量
mat文件是标准的二进制文件,还可以 ASCII码形式保存。
三、矩阵运算
1. 矩阵加、减(+,-)运算
规则: 相加、减的两矩阵必须有相同的行和列 两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。标 量与矩阵的所有元素分别进行加减操作
3.左除与右除运算
若AV=I 则V=A-1 =inv(A) 对于方程 D*X=B inv(D)*D*X=inv(D)*B X=inv(D)*B=D\B (左除,逆矩阵左乘) 对于方程 X*D=B X*D*inv(D)=B*inv(D) X= B*inv(D)=B/D (右除,逆矩阵右乘)
4. 矩阵乘方—— a^n,a^p,p^a
2*x^3+x^2-5*x+1=13 x^3-5*x^2+7=-9 2*x^2+x-1=6 x^3+6*x^2-x-4=0
第二章 MATLAB矩阵运算
—— matlab 具有出色的矩阵运 算能力,占世界上矩阵运算软件 的主导地位
矩阵运算的功能
矩阵命令行的基本操作 数据的保存与获取 矩阵的运算 矩阵的特殊操作 矩阵分解
一、命令行的基本操作
1. 创建矩阵的方法
直接输入法 规则: 1 矩阵元素必须用[ ]括住 2 矩阵元素必须用逗号或空格分隔 3 在[ ]内矩阵的行与行之间必须 用分号分隔
1. 重新排列矩阵函数
Matlab中实现矩阵重新排列的是函数 reshape,其调用格式: Reshape(a,m,n,p,…)
例:对矩阵a进行重新排列,产生的新矩 阵b,大小为2*8;新矩阵c,大小为2*4*2
a=[1 2 4 8;4 5 2 8;12 4 23 5;2 4 1 5]; b=reshape(a,2,8) c=reshape(a,2,4,2) b= c(:,:,2) = c(:,:,1) = 1 4 12 2 2 5 8 8 2 5 4 4 5 5 4 4 4 2 23 1 8 8 5 5
4 23 2 1 1 12 4 2
2. 矩阵的翻转与旋转
matlab提供对矩阵进行翻转与旋转的 函数,它们的调用格式:
rot90(A,k) fliplr(A) flipud(A)
3. 对角阵与三角阵
对角阵的定义: 对角阵的定义
只有对角线上有非0元素的矩阵称为对角矩阵, 只有对角线上有非 元素的矩阵称为对角矩阵, 元素的矩阵称为对角矩阵 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素都为1的对角矩阵称为单位矩阵 的对角矩阵称为单位矩阵。 对角线上的元素都为 的对角矩阵称为单位矩阵。