MATLAB课件2 矩阵与数组
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行、列及元素。 循环语句。For i=1:10
如 0/0
函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数
2.4 矩阵的运算
矩阵的转置 用符号“ ’ ”来表示和实现 a=[1+i 2+i;3+i 4+i] 非共轭转置“ .’ ” ,例:a’ 和a.’ 矩阵的四则运算 +、-、 *、右除/、左除\(右除向左,左除向右,斜线
A =30 36 42
66
81
96
102 126 150
矩阵乘方
Baidu Nhomakorabea当一个方阵有复数特征值或负实数特征值时,非整数幂
是复数阵。
如: a=[1,2,3;4,5,6;7,8,9]; 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]
x=[2 pi/2;sqrt(3) 3+5i]
2.2.1 创建矩阵的方法
指令中的符号:
matlab允许多条语句在同一行出现。
“,”和“;”可作为指令间的分隔 符,
分号如果出现在指令后,屏幕上将不
显示结果。
当一个指令或矩阵太长时,可用•••续
行
2.2.1 创建矩阵的方法
例:
x1+2x2=1
2x1+3x2=2 3x1+4x2=3
1 2 2 3 3 4
x1 x2
1
=2
3
a
x = b
a=[1 2;2 3;3 4];b=[1;2;3];a不是方阵,则
解1: x=a\b(不能用inv(a)*b) 解2: x=inv(a'a) a' b
x= 1.00 0
x= 1.00 0.00
小
矩阵元素的升序排列: sort(A) %对A进行列元素升序排列 sort(A,dim),%dim=1,2表以列或行为基准进行排序。 注:prod(A,dim),sum(A,dim)用法类似。
1、产生1至100等间距为1的行向量,变为列向量,再形成5行 20列的矩阵,分别用A、B、C表示以上矩阵。 2、求出C矩阵中的第5行6列元素,以及第87和25号元素。 3、给C中的第一和最后一个元素一次性重新赋值-50,-25。
2.3 矩阵元素的索引(Index)
索引:矩阵或向量元素的访问或引用。
注:访问从1开始,不同于C语言从0开始。
向量元素的访问方式:
A(3)
A([1 3 7])
A([1:3:7])
%取1,3,7号元素。
%从1到7号元素,每隔三个取一个。
A([end-3,end]) %取出end-3号和最后一个元素
A([1:5,5:-1:1])
2.3 矩阵元素的索引
对向量元素赋值:
A(3)=16
A(15)=18 (前面没有的元素全置零,它体现了MATLAB的自
动扩充功能和初始化机制。)
矩阵元素的访问:
单下标方式:A(16)
全下标方式: A(2,4)
注意和A([2,4])的不同
注:1、索引或访问的是一个元素,直接用(),是多个
2.2.1 创建矩阵的方法
利用函数linspace和logspace
linspace(x1,x2,n) n默认为100;
logspace(x1,x2,n) n默认为50个。
a=linspace(1,10,5) b=logspace(0,2,10)
间的对数等间距的10个数。 %产生5个1到10之
变量区分字母的大小写; 变量名可以用任意字母数表示。但系统只识别前 N
个,不同的系统N值不同,可用namelengthmax函数 查看;
变量必须以字母开头,之后可以是任意字母、数字
或者下划线;
变量中不能含有标点符号。
2.1 概 述
常量:程序运行中不需改变数值的量。 常量的命名方法同变量。 如pi表示圆周率3.14159265 浮点相对精度 复数虚部单位 复数虚部单位 最大正浮点数 Inf NaN pi realmin 正无穷 非数值 圆周率 最小正浮点数
间的线性等间距的数,间隔(10-1)/(5-1)
%产生10^0到10^2
2.2.1 创建矩阵的方法
矩阵连接,如:
A=[1:6]; B=[1;2;3;4;6;7]’;
c=[A B];C=[A;B]
创建列向量
用转置符号’实现:如:A=[1:6]’ 直接输入元素:B=[1;2;3;4]
练习1
(ABC) '=C ' B ' A ‘
如果矩阵等于它的转置,该矩阵称为对称阵
(只有 nxn 矩阵才有可能是对称阵)
2.4 矩阵运算 加减运算规则:
相加、减的两矩阵必须有相同的行和列, 两矩阵对应元素相加减。
允许参与运算的两矩阵之一是标量。标量
与矩阵的所有元素分别进行加减操作。
2.4 矩阵运算 乘法运算规则:
2.2.1 创建矩阵的方法
randn( ) ---均值为0,方差为1的正态分布 随机矩阵 diag( ) --- 获取矩阵的对角线元素,或生 成对角矩阵。 tril( ) ---产生下三角阵 triu( ) ---产生上三角阵 pascal( ) ---产生帕斯卡矩阵 magic( ) ---产生幻方矩阵
元素则()里用矩阵表示方法;2、矩阵以列优先。
2.3 矩阵元素的索引
使用索引访问矩阵的方法
A(i,j) 访问i行j列的元素;
A(I,J)
A(i,:)
访问向量I,J指定的矩阵A中的元素;
第i行所有元素;
A(:,j)
A(:) A(n) A(N)
第j列所有元素;
访问矩阵A所有元素; 使用单下标访问第n个元素; 访问有向量N指定的A中的元素
下的作为分母)
点乘:.* 、右除:./、左除:.\
矩阵的乘方 “ ^ ” 矩阵乘方 “ .^ ” 元素对元素的乘方
2.4 矩阵运算
定义:mxn 矩阵A = (aij ) 的转置(transpose)是 nxm 矩阵A'= ( aji )
(A+B) '=A '+B ' (A ') '=A
补充说明
特殊常量 ans pi eps flops inf nan i j nargin nargout realmin realmax
取值 用于结果的缺省变量名 圆周率 计算机的最小数 浮点运算数 无穷大 如 1/0 不等量 i=j=
1
冒号的作用
用于生成等间隔的向
量,默认间隔为1。
用于选出矩阵指定
第二章 矩阵和数组
I&EEC of SYAU
2.1 概 述
Matlab是一种进行科学计算、数据处
理的环境,也是一种编程环境,提供 了一种高级编程语言——M语言。
以矩阵、数组作为基本运算单位。 最常用的数据类型是变量和常量。
2.1 概 述 变量、常量、数组、向量 变量:在程序运行过程中需要改变数值的量。 变量要求:
基准进行合并。
直接合:repmat(a,M,N)
%把a重复合成M行,N列
矩阵的特殊运算
矩阵累积求积:列元素求积。 a=cumprod (A) ,prod(A) 矩阵累积求和:列元素求和。 b=cumsum(A),sum(A) 矩阵的最大元素和最小元素 max(A) ,min(A) %取A中列元素最大,最小; max(A,B),min(A ,B) %取A,B相对应元素的最大,最
eps i j realmax
2.1 概 述 数组:有序数据的集合。数组的每一成员属 于同一数据类型,使用统一数组名和不同的 下标来确定唯一的数组元素。
数组可分为一维、二维、多维数组。 向量(行向量和列向量):可视为一维数组。 矩阵可视为二维数组。 矩阵和向量均可称为数组。
2.2 创建矩阵
2.2.1 创建矩阵的方法
3.用matlab函数创建矩阵:
空阵[ ] — matlab允许输入空阵,当一项
操作无结果时,返回空阵。
rand(m,n)— 随机矩阵,数字范围(0,1)
eye(m,n)— 单位矩阵,方阵。
zeros(m,n)— 全部元素都为0的矩阵 ones(m,n) — 全部元素都为1的矩阵
1、说明向量、矩阵和数组的联系和区别。 2、自由生成一至六阶的六个矩阵,分别用字母 a,b,c,d,e,f表示。 3、求a、b、c三矩阵的对角元素,d、e的上三角矩 阵,f的下三角矩阵。 4、生成六阶单位阵、全1阵、帕斯卡阵和幻方阵。 5、生成一个1到100之间等间隔12个数的行向量和 一个列向量; 6、查找并自学inv()、det( )函数的含义和应用 格式。
A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。
矩阵除的运算:
在matlab中有两种矩阵除运算和逆运算。
2.4 矩阵运算
a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b
c =14
32
23
d=[-1;0;2];f=pi*d f = -3.1416 0 6.2832
2.4 矩阵运算
运算函数进行矩阵的运算
inv :矩阵求逆
det :求方阵的行列式 rank:求矩阵的秩 eig:求矩阵特征向量的特征值 svd:对矩阵进行特征值分解
norm:求矩阵的范数
sqrt:矩阵开方
获取运算函数列表及说明
help matfun
2.4 矩阵运算
矩阵运算举例
2.2.1 创建矩阵的方法
1.直接输入法
规则:
矩阵元素必须用[ 在[
]括住;
矩阵元素必须用“,”或空格分隔 ;
]内矩阵的行与行之间必须
用分号“;”分隔。
2.2.1 创建矩阵的方法
矩阵中的元素: 可以是任何matlab表达式 ,可以是实数 , 也可以是复数,复数可用特殊常量i,j 输入 :
c./b ans = 14.0000 16.0000 7.6667
a\b ans = -0.3333 0.6667 0
a\b=inv(a)*b a/b= a*inv(b)
矩阵乘方—— a^n,a^p,p^a
a ^ p —— a是方阵,p是标量,a自乘p次幂。
对于p的其它值,计算将涉及特征值和特征向量, 如果p是矩阵,a是标量a^p使用特征值和特征向量 自乘到p次幂;如a,p都是矩阵,a^p则无意义。 a=[1,2,3;4,5,6;7,8,9];A=a^2
解3: x=pinv(a) b x= 1.00 0.00
pinv( ) 求伪逆矩阵,不必是方阵可以求逆。
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=pinv(a)*b x = 1.00 0 0
x1 1 2 3 1 x2 = 2 3 4 2 x3
P44-48 (李维波), P37-58(吴天明)
A=magic(6);B=ones(6) C=A+B D=A-B E=A*B F=A/B
例:
x1+2x2=8
2x1+3x2=13
1 2 x1 8 = 2 3 x2 13
方程ax=b
a
x = b
a=[1 2;2 3];b=[8;13]; a是方阵,则 x=inv(a)*b x=a\b x= x= 2.00 2.00 3.00 3.00
2.2.1 创建矩阵的方法
4.创建向量—— 一维数组,行矩阵或列矩阵。
逐个输入元素
X=[1 2 pi 3+5i]
利用运算符号“:”
X=J:INC:K INC:步长,默认为1,也可为负;
是一种线性等间距格式矩阵,from:step:to
如:X=1:2:20 %每相隔两个数产生1到20的数字
2.用数组编辑器创建和修改矩阵: 1)只要是赋过值的变量,不管是否在屏幕 上显示过,都存储在工作空间中,以后可 随时显示、调用、修改。 2)还可以用工作空间中的数组编辑器 (Array Editor)来编辑和修改变量(双击 变量名即可打开)。 3)变量名尽可能不要重复,否则会覆盖。 不要与常量重名。
a
x = b
矩阵的特殊运算
矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:左右翻; flipud:上下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu: 抽取主上三角。 矩阵的扩展:cat(dim,a,b),dim=1,2 表以列或行为
如 0/0
函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数
2.4 矩阵的运算
矩阵的转置 用符号“ ’ ”来表示和实现 a=[1+i 2+i;3+i 4+i] 非共轭转置“ .’ ” ,例:a’ 和a.’ 矩阵的四则运算 +、-、 *、右除/、左除\(右除向左,左除向右,斜线
A =30 36 42
66
81
96
102 126 150
矩阵乘方
Baidu Nhomakorabea当一个方阵有复数特征值或负实数特征值时,非整数幂
是复数阵。
如: a=[1,2,3;4,5,6;7,8,9]; 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]
x=[2 pi/2;sqrt(3) 3+5i]
2.2.1 创建矩阵的方法
指令中的符号:
matlab允许多条语句在同一行出现。
“,”和“;”可作为指令间的分隔 符,
分号如果出现在指令后,屏幕上将不
显示结果。
当一个指令或矩阵太长时,可用•••续
行
2.2.1 创建矩阵的方法
例:
x1+2x2=1
2x1+3x2=2 3x1+4x2=3
1 2 2 3 3 4
x1 x2
1
=2
3
a
x = b
a=[1 2;2 3;3 4];b=[1;2;3];a不是方阵,则
解1: x=a\b(不能用inv(a)*b) 解2: x=inv(a'a) a' b
x= 1.00 0
x= 1.00 0.00
小
矩阵元素的升序排列: sort(A) %对A进行列元素升序排列 sort(A,dim),%dim=1,2表以列或行为基准进行排序。 注:prod(A,dim),sum(A,dim)用法类似。
1、产生1至100等间距为1的行向量,变为列向量,再形成5行 20列的矩阵,分别用A、B、C表示以上矩阵。 2、求出C矩阵中的第5行6列元素,以及第87和25号元素。 3、给C中的第一和最后一个元素一次性重新赋值-50,-25。
2.3 矩阵元素的索引(Index)
索引:矩阵或向量元素的访问或引用。
注:访问从1开始,不同于C语言从0开始。
向量元素的访问方式:
A(3)
A([1 3 7])
A([1:3:7])
%取1,3,7号元素。
%从1到7号元素,每隔三个取一个。
A([end-3,end]) %取出end-3号和最后一个元素
A([1:5,5:-1:1])
2.3 矩阵元素的索引
对向量元素赋值:
A(3)=16
A(15)=18 (前面没有的元素全置零,它体现了MATLAB的自
动扩充功能和初始化机制。)
矩阵元素的访问:
单下标方式:A(16)
全下标方式: A(2,4)
注意和A([2,4])的不同
注:1、索引或访问的是一个元素,直接用(),是多个
2.2.1 创建矩阵的方法
利用函数linspace和logspace
linspace(x1,x2,n) n默认为100;
logspace(x1,x2,n) n默认为50个。
a=linspace(1,10,5) b=logspace(0,2,10)
间的对数等间距的10个数。 %产生5个1到10之
变量区分字母的大小写; 变量名可以用任意字母数表示。但系统只识别前 N
个,不同的系统N值不同,可用namelengthmax函数 查看;
变量必须以字母开头,之后可以是任意字母、数字
或者下划线;
变量中不能含有标点符号。
2.1 概 述
常量:程序运行中不需改变数值的量。 常量的命名方法同变量。 如pi表示圆周率3.14159265 浮点相对精度 复数虚部单位 复数虚部单位 最大正浮点数 Inf NaN pi realmin 正无穷 非数值 圆周率 最小正浮点数
间的线性等间距的数,间隔(10-1)/(5-1)
%产生10^0到10^2
2.2.1 创建矩阵的方法
矩阵连接,如:
A=[1:6]; B=[1;2;3;4;6;7]’;
c=[A B];C=[A;B]
创建列向量
用转置符号’实现:如:A=[1:6]’ 直接输入元素:B=[1;2;3;4]
练习1
(ABC) '=C ' B ' A ‘
如果矩阵等于它的转置,该矩阵称为对称阵
(只有 nxn 矩阵才有可能是对称阵)
2.4 矩阵运算 加减运算规则:
相加、减的两矩阵必须有相同的行和列, 两矩阵对应元素相加减。
允许参与运算的两矩阵之一是标量。标量
与矩阵的所有元素分别进行加减操作。
2.4 矩阵运算 乘法运算规则:
2.2.1 创建矩阵的方法
randn( ) ---均值为0,方差为1的正态分布 随机矩阵 diag( ) --- 获取矩阵的对角线元素,或生 成对角矩阵。 tril( ) ---产生下三角阵 triu( ) ---产生上三角阵 pascal( ) ---产生帕斯卡矩阵 magic( ) ---产生幻方矩阵
元素则()里用矩阵表示方法;2、矩阵以列优先。
2.3 矩阵元素的索引
使用索引访问矩阵的方法
A(i,j) 访问i行j列的元素;
A(I,J)
A(i,:)
访问向量I,J指定的矩阵A中的元素;
第i行所有元素;
A(:,j)
A(:) A(n) A(N)
第j列所有元素;
访问矩阵A所有元素; 使用单下标访问第n个元素; 访问有向量N指定的A中的元素
下的作为分母)
点乘:.* 、右除:./、左除:.\
矩阵的乘方 “ ^ ” 矩阵乘方 “ .^ ” 元素对元素的乘方
2.4 矩阵运算
定义:mxn 矩阵A = (aij ) 的转置(transpose)是 nxm 矩阵A'= ( aji )
(A+B) '=A '+B ' (A ') '=A
补充说明
特殊常量 ans pi eps flops inf nan i j nargin nargout realmin realmax
取值 用于结果的缺省变量名 圆周率 计算机的最小数 浮点运算数 无穷大 如 1/0 不等量 i=j=
1
冒号的作用
用于生成等间隔的向
量,默认间隔为1。
用于选出矩阵指定
第二章 矩阵和数组
I&EEC of SYAU
2.1 概 述
Matlab是一种进行科学计算、数据处
理的环境,也是一种编程环境,提供 了一种高级编程语言——M语言。
以矩阵、数组作为基本运算单位。 最常用的数据类型是变量和常量。
2.1 概 述 变量、常量、数组、向量 变量:在程序运行过程中需要改变数值的量。 变量要求:
基准进行合并。
直接合:repmat(a,M,N)
%把a重复合成M行,N列
矩阵的特殊运算
矩阵累积求积:列元素求积。 a=cumprod (A) ,prod(A) 矩阵累积求和:列元素求和。 b=cumsum(A),sum(A) 矩阵的最大元素和最小元素 max(A) ,min(A) %取A中列元素最大,最小; max(A,B),min(A ,B) %取A,B相对应元素的最大,最
eps i j realmax
2.1 概 述 数组:有序数据的集合。数组的每一成员属 于同一数据类型,使用统一数组名和不同的 下标来确定唯一的数组元素。
数组可分为一维、二维、多维数组。 向量(行向量和列向量):可视为一维数组。 矩阵可视为二维数组。 矩阵和向量均可称为数组。
2.2 创建矩阵
2.2.1 创建矩阵的方法
3.用matlab函数创建矩阵:
空阵[ ] — matlab允许输入空阵,当一项
操作无结果时,返回空阵。
rand(m,n)— 随机矩阵,数字范围(0,1)
eye(m,n)— 单位矩阵,方阵。
zeros(m,n)— 全部元素都为0的矩阵 ones(m,n) — 全部元素都为1的矩阵
1、说明向量、矩阵和数组的联系和区别。 2、自由生成一至六阶的六个矩阵,分别用字母 a,b,c,d,e,f表示。 3、求a、b、c三矩阵的对角元素,d、e的上三角矩 阵,f的下三角矩阵。 4、生成六阶单位阵、全1阵、帕斯卡阵和幻方阵。 5、生成一个1到100之间等间隔12个数的行向量和 一个列向量; 6、查找并自学inv()、det( )函数的含义和应用 格式。
A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。
矩阵除的运算:
在matlab中有两种矩阵除运算和逆运算。
2.4 矩阵运算
a=[1 2 3;4 5 6;7 8 0];b=[1;2;3];c=a*b
c =14
32
23
d=[-1;0;2];f=pi*d f = -3.1416 0 6.2832
2.4 矩阵运算
运算函数进行矩阵的运算
inv :矩阵求逆
det :求方阵的行列式 rank:求矩阵的秩 eig:求矩阵特征向量的特征值 svd:对矩阵进行特征值分解
norm:求矩阵的范数
sqrt:矩阵开方
获取运算函数列表及说明
help matfun
2.4 矩阵运算
矩阵运算举例
2.2.1 创建矩阵的方法
1.直接输入法
规则:
矩阵元素必须用[ 在[
]括住;
矩阵元素必须用“,”或空格分隔 ;
]内矩阵的行与行之间必须
用分号“;”分隔。
2.2.1 创建矩阵的方法
矩阵中的元素: 可以是任何matlab表达式 ,可以是实数 , 也可以是复数,复数可用特殊常量i,j 输入 :
c./b ans = 14.0000 16.0000 7.6667
a\b ans = -0.3333 0.6667 0
a\b=inv(a)*b a/b= a*inv(b)
矩阵乘方—— a^n,a^p,p^a
a ^ p —— a是方阵,p是标量,a自乘p次幂。
对于p的其它值,计算将涉及特征值和特征向量, 如果p是矩阵,a是标量a^p使用特征值和特征向量 自乘到p次幂;如a,p都是矩阵,a^p则无意义。 a=[1,2,3;4,5,6;7,8,9];A=a^2
解3: x=pinv(a) b x= 1.00 0.00
pinv( ) 求伪逆矩阵,不必是方阵可以求逆。
x1+2x2+3x3=1 2x1+3x2+4x3=2 a=[1 2 3;2 3 4];b=[1;2]; x=pinv(a)*b x = 1.00 0 0
x1 1 2 3 1 x2 = 2 3 4 2 x3
P44-48 (李维波), P37-58(吴天明)
A=magic(6);B=ones(6) C=A+B D=A-B E=A*B F=A/B
例:
x1+2x2=8
2x1+3x2=13
1 2 x1 8 = 2 3 x2 13
方程ax=b
a
x = b
a=[1 2;2 3];b=[8;13]; a是方阵,则 x=inv(a)*b x=a\b x= x= 2.00 2.00 3.00 3.00
2.2.1 创建矩阵的方法
4.创建向量—— 一维数组,行矩阵或列矩阵。
逐个输入元素
X=[1 2 pi 3+5i]
利用运算符号“:”
X=J:INC:K INC:步长,默认为1,也可为负;
是一种线性等间距格式矩阵,from:step:to
如:X=1:2:20 %每相隔两个数产生1到20的数字
2.用数组编辑器创建和修改矩阵: 1)只要是赋过值的变量,不管是否在屏幕 上显示过,都存储在工作空间中,以后可 随时显示、调用、修改。 2)还可以用工作空间中的数组编辑器 (Array Editor)来编辑和修改变量(双击 变量名即可打开)。 3)变量名尽可能不要重复,否则会覆盖。 不要与常量重名。
a
x = b
矩阵的特殊运算
矩阵的变维 a=[1:12];b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:左右翻; flipud:上下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu: 抽取主上三角。 矩阵的扩展:cat(dim,a,b),dim=1,2 表以列或行为