MATLAB语言:第2章 MATLAB矩阵及运算 (2)
MATLAB矩阵及运算

重点
y矩阵中每一列最大的值
y向量中最大的值
最大值的位置
最大值的位置
注意:输入矩阵类型不同, 则执行的操作不同。
2.1.4 函数
因为matlab函数太多,所以要养成使用help
命令,得到有关函数的具体用法:
例:help max
2.1表达式
表达式
(即语句):将变量、数值、函 数用操作符连接起来,就构成了表达式 。
应用:可以和其它语言程序进行数据通信。 举例:
通过MATLAB提供的函数产生矩阵
用内部函数可生成一些特殊矩阵 (函数见书上P50)
重点
通过MATLAB提供的函数产生矩阵
1、单位矩阵(
E方阵)和广义单位矩阵的
产生
重点
通过MATLAB提供的函数产生矩阵
2、随机数矩阵的产生
随机数的产生常常用在控制系统仿真以 及信号分析,是一个非常重要的手段。 MATLAB提供了很好的随机数产生函数: rand() randn()
A/ B A*B
1
A\B A
重点
1
*B
Matlab右除法表示形式:
C=A/B 或 C=A * i n v ( B )
Matlab左除法表示形式: C=A\B 或 C=i n v ( A ) * B
注意:只有行列式不为0的方阵才存在逆阵!!!
矩阵元素的右除、左除
a1 A a3 a2 a4
2)变量名由字母、数字和下划线构成。第一个 字母必须是英文字母。 3)有字符个数限制(版本5.0 :最多31个字符)
2.1.2 变量
MAT
重点
(注意大小写!)
i或j: 错误:5+j7
第2章 MATLAB数据及其运算

③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
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)
第2章MATLAB矩阵及其运算

·30·
第 2 章 MATLAB 矩阵及其运算
的求解方法时,因不完善的设计导致的内存溢出。在此,主要针对第二种情况进行分析并 给出相应的解决方案。
1.变量名区分大小写 变量名的定义必须符合以下条件: 必须以字母开头。 由字母、数字、下划线组成。 最长为 31 个字符。 一些用户不可以清除的变量,如 ans、eps、pi、Inf、NaN 等。 【例 2-1】 变量定义举例如下:
A a king
在 MATLAB 中的变量不需要事先定义,在遇见新的变量名时,MATLAB 会自动建立 并且为其分配存储空间。如果遇见已经出现的变量,会重新为其分配空间。
a = complex(2,9) b = real(a) c = imag(a)
MATLAB 运行结果如下:
a= 2.0000 + 9.0000i
b= 2
c= 9
3.除了可以把数值直接赋给变量,还可以将表达式、矩阵赋给变量
对于矩阵的讲解,会在后面详细讲解。 【例 2-4】 变量的赋值举例如下:
a=[1 4 7] B=abs(6+13i) C=[]
(4)不同数据结构的内存。 在 MATLAB 中,8 位、16 位、32 位、64 位的有符号整型或无符号整型分别占用 1、2、4、8 字节空间,单精度、双精度浮点数分别占用 4、8 字节空间。 在 MATLAB 中,复数的存储比较特殊。复数的实部和虚部在内存中是分开存放的, 当在程序中修改复数的实部或虚部时,会在修改数据的同时复制复数的实部和虚部。 在 MATLAB 中,当数组的元素绝大部分为 0 时,MATLAB 一般默认采用稀疏矩 阵进行存储以节省空间。
a=[1,2,3,4,5,6,7,8,9,10]
Matlab矩阵及其运算

2.2 Matlab矩阵及其操作
2.2.3 特殊矩阵 • 通用特殊矩阵
zeros:产生全0矩阵(零矩阵) ones:产生全1矩阵(幺矩阵) eye:产生单位矩阵 rand:产生0~1间均匀分布的随机矩阵 randn:产生均值为0,方差为1的标准正态分布随 机矩阵
2.2 Matlab矩阵及其操作
2.4 字符串、结构和单元数据
2.4.1 字符串 • 构建
使用‘单撇号’括起来的字符序列,例:str=‘Hello World!’
• 字符串操作
以ASCII码形式存储 获取字符ASCII值:double或abs函数 ASCII转化为字符输出:char函数 例: double('a') abs('a') char(63) (Ex2_12)
定义[ ]为空矩阵,x=[ ] x=[ ]与clear x的区别 将某些元素从矩阵中删除可设置为空矩阵
• 改变矩阵形状
reshape(A,m,n)函数 例:x=[23,45,56,67,78,34,98,65,43,76,12,46] y=reshape(x,3,4) y1=reshape(x,2,6)
• 转置与旋转
转置:单撇号(’),即A’ 旋转:rot90(A,k)函数 左右和上下翻转:fliplr(A)和flipud(A)
2.3 Matlab运算与矩阵分析
2.3.2 矩阵分析 • 矩阵的逆和伪逆:inv(A) 和pinv(A) • 方阵行列式:det(A) • 矩阵的秩与迹:rank(A)和trace(A) • 向量和矩阵范数:norm(V,1)、 norm(V)和 norm(V,inf) • 矩阵条件数: cond(V,1)、 cond(V)和 cond(V,inf) • 矩阵特征值与特征向量:[V,D]=eig(A) (Ex2_11)
MATLAB矩阵及其运算变量和数据操作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预先定义的变量, 分别代表代表圆周率π和虚数单位。 输出结果是: z= -0.3488 + 0.3286i
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为1, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数vander(V)生成以向量V 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 阵。
其中,文件名可以带路径,但不需带扩展 名.mat,命令隐含一定对.mat文件进行操作。 变量名表中的变量个数不限,只要内存或 文件中存在即可,变量名之间以空格分隔。 当变量名表省略时,保存或装入全部变量。 -ascii选项使文件以ASCII格式处理,省略 该选项时文件将以二进制格式处理。save命 令中的-append选项控制将变量追加到MAT 文件中。
例2-7 求(x+y)5的展开式。 在MATLAB命令窗口,输入命令: pascal(6) 矩阵次对角线上的元素1,5,10,10,5,1即为展 开式的系数。
2.3 MATLAB运算 2.3.1算术运算 1.基本算术运算 MATLAB的基本算术运算有:+(加)、 -(减)、*(乘)、/(右除)、\(左除)、^(乘方)。 注意,运算是在矩阵意义下进行的,单个 数据的算术运算只是一种特例。
第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程序设计矩阵及其运算

matlab程序设计矩阵及其运算1. 矩阵的定义和表示在matlab中,矩阵是一种常用的数据结构,用于存储和处理多维数据。
矩阵由行和列组成,每个元素都有一个唯一的位置。
在matlab中,可以通过方括号[ ]来定义和表示矩阵。
以下是一些常见的矩阵定义:一维行向量:matlabA = [1 2 3 4 5];一维列向量:matlabB = [1; 2; 3; 4; 5];二维矩阵:matlabC = [1 2 3; 4 5 6; 7 8 9];可以使用size()函数获取矩阵的维度信息,例如:matlab[m, n] = size(C); % m为行数,n为列数2. 矩阵的运算matlab中的矩阵可以进行各种运算,包括基本的加减乘除运算、转置运算、矩阵乘法运算等。
2.1 加法和减法矩阵的加法和减法可以使用+和-运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = [9 8 7; 6 5 4; 3 2 1];C = A + B; % 矩阵的加法D = A B; % 矩阵的减法2.2 矩阵乘法矩阵乘法在matlab中使用运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = [9 8 7; 6 5 4; 3 2 1];C = A B; % 矩阵的乘法2.3 转置运算矩阵的转置表示将矩阵的行和列互换,使用'运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = A'; % A的转置矩阵2.4 矩阵的逆运算矩阵的逆运算是指对于一个可逆矩阵A,存在一个矩阵B,使得A B = B A = I,其中I为单位矩阵。
在matlab中,可以使用inv()函数来求一个矩阵的逆矩阵,例如:matlabA = [1 2; 3 4];B = inv(A); % A的逆矩阵需要注意的是,不是所有的矩阵都有逆矩阵,对于不可逆的矩阵,inv()函数会报错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>> t=0:pi/3:2*pi;
%t为行向量
>> x=sin(t)*cos(t)
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> x=sin(t).*cos(t)
x=
0 0.4330 -0.4330 -0.0000 0.4330 -0.4330 -0.0000
as=n(result)%显示这些数字
练习
电子装备结构设计 教育部重点实验室
>> y=sin(t)./cos(t)
y=
0 1.7321 -1.7321 -0.0000 1.7321 -1.7321 -0.0000
程序分析:sin(t)和cos(t)都是行向量,必须使用.*和./计算 行向量中各元素的计算值。
电子装备结构设计 教育部重点实验室
2.4.2 关系运算
MATLAB 7.3常用的关系操作符有<、<=、>、>=、 = = (等于)、 ~=(不等于)。
关系运算规则: • 如果比较的两个变量都是标量,则结果为1(true)或0( false); • 如果比较的两个变量都是矩阵,则必须尺寸大小相同, 比较的是两矩阵相同位置的元素按标量关系运算规则逐个 进行,并给出元素比较结果,结果也是同样大小的矩阵, 它的元素由0、1组成; • 如果比较的是一个矩阵和一个标量,则把矩阵的每个元 素分别与标量比较,结果为与矩阵大小相同的矩阵它的元 素由0、1组成。
2)若A、B两矩阵具有相同的维数,则
A.^B表示两矩阵对应元素进行乘方运算。
3)指数可以是标量,底也可以是标量。
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
常用的数学函数
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
例 使用数组算术运算法则进行向量的运算。
负整数时,表示先将矩阵A求逆,再自乘\B\次,仅对非奇异矩阵
成立;B为矩阵时不能运算,会出错。
A^B
(5)矩阵的转置
A'
%矩阵A的转置
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
2.点运算
点运算符号为矩阵的相应运算符前面加“.” ,两矩阵 进行点运算是指它们的对应元素进行相关运算,要求两 矩阵的维参数相同。
第2章 MATLAB矩阵及运算 电子装备结构设计
Hale Waihona Puke 教育部重点实验室2.4.1 矩阵和数组的算术运算 2.4.2 关系运算 2.4.3 逻辑运算 2.5 字符串 2.6 结构体和元胞数组 2.7 数组的信息获取
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
1. 矩阵算术运算
矩阵的基本运算是+、-、×、÷和乘方(^)等。
格式如下:
A.*B %数组A和数组B对应元素相乘 A./B %数组A除以数组B的对应元素 A.\B %数组B除以数组A的对应元素 A.^B %数组A和数组B对应元素的乘方
练习
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
Tips:
1)若A、B两矩阵具有相同的维数,则 A./B与A.\B等价,表示A矩阵除以B矩阵的对 应元素。
电子装备结构设计 教育部重点实验室
2.4.1 矩阵和数组的算术运算
(3)矩阵的除法运算
矩阵的除法运算表达式有两种:
A\B
%左除,A*X=B的解
A/B
%右除,X*B=A的解
注:A/B=A*B-1 ,B-1是B的逆矩阵,也可用inv(b)来表示。
练习:计算方程组的解。
(4)矩阵的乘方:B为正整数时,表示矩阵A自乘B次; B为
函数logical可以用来将数值型转换为逻辑型 ,任何非零的数值都转换为逻辑1,数值0转 换为逻辑0。
例:将矩阵转换成逻辑变量。 a=0:5;b=logical(a);c=a.*b;
电子装备结构设计 教育部重点实验室
逻辑运算类型
1. 元素的逻辑运算 元素的逻辑运算是将数组中的元素一一进行逻辑运算,常用的逻辑运算符:&( 与)、|(或)、~(非)和xor(异或)。 运算法则: (1)在逻辑运算中,非0元素表示true,0元素表示false。 (2)设参与逻辑运算的是两个标量a和b,那么 a&b a,b全为非零时,运算结果为1。 A|b a,b中只要有一个非零,运算结果为1。 ~a 当a是零时,运算结果为1;当a非零时,运算结果为0。 (3)若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标 量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1和0组成。 (4)若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每 个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素 由1或0组成。 (5)逻辑非是单目运算符,也服从矩阵运算规则。 (6)在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
电子装备结构设计 教育部重点实验室
2.4.3逻辑运算
例:使用关系运算和元素的逻辑运算找 出大于60小于100的数的位置。
num=round(rand(1,10)*100);%生成<100的整数, %round(A),A中的元素四舍五入到整数,rand(1,10),产生 随机数0.0-1.0的1X10矩阵。 n=(num>60)&(num<100) n=n.*num result=find(n)%查找非0位置,按索引方式
(1)矩阵的加、减运算:A和B矩阵必须大小相同才 可以进行加减运算。如果A和B中有一个是标量,则该 标量与矩阵的每一个元素进行运算。
A+B 和A-B
(2)矩阵的乘法运算: A的列数必须和B的行数相等 ,除非其中有一个是标量。
A*B 例: A=[1 2 3;4 5 6] B=eye(2,3)
计算:c=A+B,d=A*B,d=B*A
注意:两个浮点数比较是否相等时,由于浮点数存储的 相对误差的存在,因此直接比较是不合适的,而应使用两 数差小于一定范围来表示相等。
练习
电子装备结构设计 教育部重点实验室
2.4.3 逻辑运算
MATLAB 7.3中逻辑型(logical)数据只有 “1”和“0”,分别表示true和false两种状态 ,逻辑型变量只占1个字节。