第3章 アンカーボルト据付け 1)アンカーボルトの据付準備...第3章 アンカーボルト据付け 1)アンカーボルトの据付準備 (1)アンカーボルト材料
第 2 章 MATLAB 数据
description
Transcript of 第 2 章 MATLAB 数据
第 2 章 MATLAB 数据 §2.1 矩阵的创建 §2.2 算术运算 §2.3 关系运算和逻辑运算 §2.4 MATLAB矩阵、数组函数 §2.5 MATLAB矩阵分解 §2.6 矩阵的特殊操作
补充:向量、矩阵、数组的定义: 1 )把用下标表示次序的标量数的集合称为矩阵或数组,而向量是一类特殊的矩阵; 2 )矩阵和数组可以互换调用,准确说,矩阵是指以实数或复数为元素的长方形数组。从孤立的数的集合角度看,不管是矩阵还是数组,它们所指的并没有什么不同;但从运算角度看,矩阵运算和数组运算是不同的,在 matlab 中,矩阵运算是从矩阵的整体出发,依照线性运算规则进行,数组运算是从数组的元素出发,针对每个元素进行计算。
2.1 矩阵的创建一、矩阵创建的原则:1 、矩阵的元素必须在“ [ ]” 中;2 、矩阵的同行元素之间用空格或“,”隔开;3 、矩阵的行与行之间用“;”或回车符隔开;4 、矩阵的尺寸不必预先定义;5 、矩阵元素可以是数值、变量、表达式或函数。
例 2.1 创建矩阵
>>x=[1 2 3;4 5 6;7 8 9]>>x=[1 2 3
4 5 6 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
2.1 矩阵的创建二、变量 与赋值
1 、变量的命名在 MATLAB 中,变量名是以字母开头,后接
字母、数字或下划线的字符序列,最多 63 个字符。在 MATLAB 中,变量名区分字母的大
小写。 MATLAB 提供的标准函数名以及命令名必须用小写字母。
例: myexamp 、 MYexamp 、 MYEXAMP
注意注意
2 、 赋值语句 MATLAB 赋值语句有两种格式:
2.1 矩阵的创建
变量 = 表达式(或数)
表达式
【例 2.2 】 x = [1,2,3;4,5,6;7,8,9]
与 [1,2,3;4,5,6;7,8,9] 。
【例 2.3 】计算 的
值,并将结果赋给变量 x ,后显示出结果。
i27147cos5 0
注意注意 pi 、 i 是 matlab 定义的变量,分别表示圆周率和虚数单位!
2 、预定义变量预定义变量 含义 预定义变量 含义ans 计算结果的缺省 margin 函数输入参数个数eps 机器零阈值 nergout 函数输出参数个数pi 圆周率的近似值 realmax 最大正实数i 、 j 虚数单位 realmin 最小正实数inf 、 Inf 无穷大 lasterr 存放最新错误信息NaN 、 nan 非数 lastwarn 存放最新警告信息
2.1 矩阵的创建
三、矩阵的建立
1、直接输入法
2、通过M文件创建矩阵
3、通过函数创建矩阵
4、通过数据文件创建矩阵
2.1 矩阵的创建
三、矩阵的建立1 、直接输入法 从键盘上直接输入矩阵的元素。只要遵
循矩阵创建原则直接输入即可,如果不希望显示结果,在命令行的最后加分号“;”
适用于所有的操作,包括程序设计
注意注意
三、矩阵的建立 2 、通过 M 文件创建矩阵
对于比较大且复杂的矩阵,有专门的 M文件编辑器
方法方法 ① 直接启动② 在命令窗口输入命令 edit 。
三、矩阵的建立 3 、通过函数创建矩阵
利用 matlab 的内部函数或用户自定义函数创建矩阵
例 2.4 创建 0 到 2pi 间的正弦函数矩阵>>x=0:pi/4:2*pi; % 创建了 0 到 2pi 间隔
为 pi/4 的自变量>>y=sin(x) % 得到正弦函数值输出结果(略)
三、矩阵的建立 4 、通过数据文件创建矩阵
matlab 可以处理的数据包括:文本文件、 .mat 数据文件、 .xls 文件、图像文件、声音文件。
这些文件都是以矩阵的形式存储在工作空间中的
注意注意
§2.2 矩阵和数组的算术运算 一、矩阵和数组的加减运算
二、矩阵的乘法三、数组的乘法四、矩阵除法
五、数组的除法六、点运算七、幂运算八、矩阵的转置
注意注意 这些运算是在矩阵意义下进行的,单个数据的算术运算只是一种特殊!
2.2 矩阵和数组的算术运算 一、矩阵和数组的加减运
A±BA±B
注意注意 A 、 B 的阶数不同,会给出错误信息,提示用户阶数不匹配!
例 2.5 >>a=[1 2 3;4 5 6; 7 8 9];b=[1 1 1];
>>c=a-b
例 2.6 >>c=a+b
2.2 矩阵和数组的算术运算 二、矩阵的乘法
),...,1;,...,1(1
pjmibaC kj
n
kikij
注意注意 A 为 m×n , B 为 n×p ,则C 为 m×p (必须有相邻的公共阶)
例 2.7 >>A=[1 2 3;4 5 6;7 8 9];B=[1 2;3 0;7 4]; >>C=A*B
例 2.8 a=rand(3)b=rand(3)c=a/bd=b\a
§2.2 矩阵和数组的算术运算 三、数组的乘法
BAC
注意
注意
A 、 B 数组必须有相同的阶数,则A.*B 表示 A 和 B 中对应元素之间相乘★与矩阵的乘法相同?
例 2.9 >>a=[1 2 3];b=[4 5 6];
>>c=a.*b
§2.2 矩阵和数组的算术运算 四、矩阵除法
abD
bainvCbaC
/
*)(\
一般选择右除
例 2.10 >>a=[1 2 3;4 5 6;7 8 9];
>>b=[4 3 2;7 5 1;12 7 92];
>>c1=a\b;c2=b/a;c3=a/b
2.2 矩阵和数组的算术运算 五、数组的除法
C=a.\b 与 C=a./b说明: a 与 b 的阶数必须相同。 a.\b表示 b 中的元素分别除以 a 中相应的元素。
例 2.11 >>a=[1 2 3];b=[4 5 6];
>>c=a.\b
>>d=b.\a
§2.2 矩阵和数组的算术运算 六、点运算
C = A.*B C=A./B
C=A.\B C=A.^B
§2.2 矩阵和数组的算术运算 七、幂运算
C=A^B C=A.^BC=A^B C=A.^B
例 2.12 >>a=[1 2 3];b=[4 5 6]; >>c=a^b
例 2.13 >>a=[1 2 3];b=[4 5 6]; >>c=a.^b
例 2.14 >>a=[1 2 3];b=2; >>c=a^2
例 2.15 >>a=[1 2 3];b=2; >c=a.^2
总结:对矩阵的幂运算, a 、 b 不能同时为矩阵,必须有一个标量;而数组的幂运算是对其元素进行幂运算的。
2.2 矩阵和数组的算术运算 八、矩阵的转置
C=A’ C=A.’C=A’ C=A.’
例 2.16 >>a=[1 2 3
4 5 6
7 8 9]
>>c=a’
例 2.17 ①>>a=[1+2i 3+4i]>>c1=a’ %……
②>>c2=a.’ %…… ③>>c3=conj(a’) %
§2.3 矩阵和数组的关系运算和逻辑运算
一、运算关系二、逻辑运算三、逻辑函数和关系函数
一、运算关系
运算符 功能 运算符 功能
< 小于 >= 大于等于
<= 小于等于 == 等于
> 大于 ~= 不等于
§2.3 矩阵和数组的关系运算和逻辑运算
例 2.18 >>a=[0 -1 2];b=[-3 1 2];
①>>a<b
②>>a<=b
③>>a=2;b=[1 2 3];
>>a~=b
总结:关系运算法则:①当两个比较量是标量时,直接比较两数的大小,若关系成立,关系表达式结果为 1 ,反之为 0 ;
总结:关系运算法则:②当参与比较的量是两个维数相同的矩阵时,比较的元素按标量关系元素规则逐个进行,并给出元素的比较结果。最终关系元素的结果是一个维数与原矩阵相同的矩阵,它的元素由 1 或 0 组成。
总结:关系运算法则:③当参与比较的是一个为标量,另一个为矩阵时,则把标量与矩阵的每一个元素按标量关系元素规则逐个比较,并给出比较的结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,由 1 或 0 组成。
二、逻辑运算 逻辑运算符: &( 与 ) 、 |( 或 ) 、 ~( 非 )
§2.3 矩阵和数组的关系运算和逻辑运算
与其他计算机语言基本一致
逻辑运算法则:① 在逻辑运算中,确认非零元素为真,用 1表示;零元素为假,用 0 表示② 设参与逻辑运算的是两个标量 a 、 b ,那么a&b a 、 b全非零时,结果为 1 ,否则为 0 ;a|b a 、 b 中只要有一个非零,结果为 1 ,反之为 0~ a 当 a 为零时,结果为 1 ,反之为 0 。
逻辑运算法则:③若参与逻辑运算的是两个同维矩阵,那么运算运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由 1 或 0 组成。④若参与逻辑运算的一个是标量一个是矩阵,那么运算运算将在标量与矩阵每个元素之间按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由 1 或 0 组成。
逻辑运算法则:
⑤逻辑运算服从矩阵运算规则;
⑥在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
三、逻辑函数和关系函数
§2.3 矩阵和数组的关系运算和逻辑运算
all(x) find(x)
检查 x 是否全为 1
找出非零元素的位置标识
例 2.20 建立矩阵 A ,然后找出大于 4 的元素位置
( 1 )建立 A
>>A=[4 -6 5 -54 0 6
56 0 67 -45 0]
( 2 )找出大于 4 的元素位置>>find(A>4)
§2.4 矩阵函数与数组函数一、矩阵函数二、通用函数
一、矩阵函数matlab 提供了大量的矩阵函数,如特征值、奇异值的计算、条件数、范数、矩阵的秩和矩阵的空间运算等inv (逆)、 pinv (伪逆)等
§2.4 矩阵函数与数组函数
参见教材 P36 表 3
参见教材 P36 表 3
例 2.21 矩阵 a 为 ,计算 a 的特
征值、特征矢量。
987
654
321
输入矩阵,计算 [c,d]=eig(a)[c,d]=eig(a)
>>a=[1 2 3;4 5 6;7 8 9];>>[c,d]=eig(a)
例 2.22 矩阵 a 为 ,计算 a 的
逆矩阵、伪逆矩阵。
987
654
321
输入矩阵,计算 c=inv(a);d=pinv(a)c=inv(a);d=pinv(a)
>>a=[1 2 3;4 5 6;7 8 9];>>c=inv(a) % 这是严重的变态矩阵>>d=pinv(a)
二、通用函数§2.4 矩阵函数与数组函数
通用函
数
数学函数: sin 、 cos 、 log等
特殊函数: erf 、 cross 、 cart2sph
教材 P38 表 4 表 5教材 P38 表 4 表 5
§2.5 矩阵分解一、特征值分解
特征值与特征向
量 V=eig(a)
[v,d]=eig(a)
[v,d]=eig(a,nobalance)
[v,d]=eig(a,b)
直接求 a 的全部特征值
特征值 v 和特征向量 d
关闭平衡关闭平衡
广义特征值分解
二、奇异值分解
§2.5 矩阵分解
[u,sv]=svd(a) or [us,v]=svd(a)[u,sv]=svd(a) or [us,v]=svd(a)
例 2.23 对 a=[1 1] 进行奇异值分解>>a=[1 1];>>[u,s,v]=svd(a)
三、 LU 分解
§2.5 矩阵分解
[l,u]=lu(a)
例 2.24 P40 “ 例 2-22”a=[1 2 3;4 5 6;7 8 9];[l,u]=lu(a)
§2.6 矩阵的特殊操作
一、特殊矩阵及其创建二、矩阵的特殊操作三、矩阵的特殊操作
一、特殊矩阵及其创建
§2.6 矩阵的特殊操作
1 、空阵 格式: [ ]① 在 matlab 的工作空间中存在被赋值的空阵;② 空阵不包括任何元素,是 0×0阶矩阵;③可以在 matlab 的运算中传递。
§2.6 矩阵的特殊操作一、特殊矩阵及其创建
2
、全0
矩
阵
zeros(m,n,p,…)
zeros(m,n)
zeros(n,n)
§2.6 矩阵的特殊操作一、特殊矩阵及其创建
3 、单位矩阵
eye(m,n)eye(m,n)
§2.6 矩阵的特殊操作一、特殊矩阵及其创建
4 、全 1 阵
ones(m,n,p…)ones(m,n,p…)
§2.6 矩阵的特殊操作一、特殊矩阵及其创建
5 、随机阵
rand(m,n,p…)rand(m,n,p…)
§2.6 矩阵的特殊操作二、矩阵的特殊操作1 、冒号表达式
① e1:e2:e3 ② linspace(a,b,n)
① e1:e2:e3 ② linspace(a,b,n)
例 2.25 >>t=0:1:5
§2.6 矩阵的特殊操作二、矩阵的特殊操作2 、矩阵元素
A(m,n)=CA(m,n)=C
矩阵矩阵 行 列 数值数值
例 2.26 >>A=[1 2 3 4 5 6];
>>A=(4,5)=100
例 2.27A(3,2)=200
A = 1 2 3 4 5 6
7 200 9
2. 矩阵拆分 (1)利用冒号表达式获得子矩阵 ①A(:,j) 表示取 A 矩阵的第 j 列全部元素; A(i,:) 表
示 A 矩阵第 i 行的全部元素; A(i,j) 表示取 A 矩阵第i 行、第 j 列的元素。
②A(i:i+m,:) 表示取 A 矩阵第 i~ i+m 行的全部元素;A(:,k:k+m) 表示取 A 矩阵第 k~ k+m 列的全部元素,A(i:i+m,k:k+m) 表示取 A 矩阵第 i ~ i+m 行内,并在第 k~ k+m 列中的所有元素。
此外,还可利用一般向量和 end 运算符等来表示矩阵下标,从而获得子矩阵。 end 表示某一维的末尾元素下标。
例 2.28 >>A=[1 2 3 4 5;6 7 8 9 10; 11 12 13 14 15;16 17 18 19 20];
>>A(2:3,4:5)
例 2.29 >>A= =[1 2 3 4 5;6 7 8 9 10; 11 12 13 14 15;16 17 18 19 20];
>>A(end,:); >>A([1,4],3:end)
(2) 利用空矩阵删除矩阵的元素
x=[]x=[]
例 2.30 A=[1 2 3 4 5 67 8 9 10 11 1213 14 15 16 17 18];>>A(:,[2,4])=[]
三、矩阵的特殊操作
§2.6 矩阵的特殊操作
1 、重新排列
c=reshape(a,m,n,p,…)c=reshape(a,m,n,p,…)
§2.6 矩阵的特殊操作三、矩阵的特殊操作
2 、矩阵的翻转与旋转
命令 功能 命令 功能
fliplr 左右翻转 flipdim N维翻转
flipud 上下翻转 rotgo 逆时针旋转90 度