当前位置:首页 >> 小学教育 >>

matlab 向量与矩阵运算


数学实验

向量与矩阵运算

向量与矩阵运算
? 向量与矩阵的生成
?

向量的生成 ? 直接输入: a=[1,2,3,4] ? 冒号运算符 ? 从矩阵中抽取行或列

例:a=[1:4] ==> a=[1, 2, 3, 4]
b=[0:pi/3:pi] ==>

; b=[0, 1.0472, 2.0944, 3.1416] c=[6:-2:0] ==> c = [6, 4, 2, 0]

向量与矩阵运算
? 向量与矩阵的生成(续)
?

矩阵的生成 ? 直接输入: A=[1, 2, 3; 4, 5, 6; 7, 8, 9] ? 由向量生成 ? 通过编写m文件生成 ? 由函数生成

例:>> x=[1,2,3];y=[2,3,4];
>> A=[x,y], B=[x;y]

例:>> C=magic(3)

常见矩阵生成函数
zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) ones(m,n) eye(m,n) diag(X) tril(A) triu(A) rand(m,n) 生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 提取一个矩阵的下三角部分 提取一个矩阵的上三角部分 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n)

randn(m,n) 产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n) 其它特殊矩阵生成函数:magic、hilb、pascal

矩阵操作
? 提取矩阵的部分元素: 冒号运算符
? ? ? ? ?

A(:) A的所有元素 A(:,:) 二维矩阵A的所有元素 A(:,k) A的第 k 列, A(k,:) A的第 k 行

A(k:m) A的第 k 到第 m 个元素 A(:,k:m) A的第 k 到第 m 列组成的子矩阵

自己动手
A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵?

矩阵操作
? 矩阵的旋转
?
? ?

fliplr(A) 左右旋转 flipud(A) 上下旋转
rot90(A) 逆时针旋转 90 度; rot90(A,k) 逆时针旋转 k×90 度 >> B=fliplr(A) >> C=flipud(A) >> D=rot90(A), E=rot90(A,-1)

例:>> A=[1 2 3;4 5 6]

矩阵操作
? 矩阵的转置与共轭转置
? ?

’ 共轭转置 .’ 转置,矩阵元素不取共轭 点与单引号之间不能有空格!

例:>> A=[1 2;2i 3i]
>> B=A’ >> C=A.’

矩阵操作
? 改变矩阵的形状:reshape

reshape(A,m,n): 将矩阵元素按 列方向 进行重组 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!

矩阵操作
? 查看矩阵的大小:size
size(A) 列出矩阵 A 的行数和列数 ? size(A,1) 返回矩阵 A 的行数 ? size(A,2) 返回矩阵 A 的列数
?

例:>> A=[1 2 3; 4 5 6]
>> size(A) >> size(A,1) >> size(A,2) length(x) ? length(A)
?

返回向量 X 的长度 等价于 max(size(A))

矩阵基本运算
? 矩阵的加减:对应分量进行运算
要求参与加减运算的矩阵具有 相同的维数

例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]
>> C=A+B; D=A-B;

? 矩阵的普通乘法
要求参与运算的矩阵满足线性代数中矩阵相乘的原则

例:>> A=[1 2 3; 4 5 6]; B=[2 1; 3 4];
>> C=A*B

矩阵基本运算
? 矩阵的除法:/、\ 右除和左除
若 A 可逆方阵,则 B/A <==> A 的逆右乘 B <==> B*inv(A) A\B <==> A 的逆左乘 B <==> inv(A)*B 通常,矩阵除法可以理解为 X=A\B <==> A*X=B X=B/A <==> X*A=B 当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除

矩阵的乘方
? A 是方阵,p 是正整数 A^p 表示 A 的 p 次幂,即 p 个 A 相乘。

? 若 A 是方阵,p 不是正整数 A^p 的计算涉及到 A 的特征值分解,即若 A = V*D*V-1 则 A^p=V*(D.^p)/V

矩阵的乘方
? 若 a 是标量,
d 骣1 琪 0 琪 D = 琪? 琪 0 桫 0 d2 ? 0 ? ? ? ? 0 0 ? dn



? a ^ d1 ? ? 0 a^ D ? ? ? ? ? 0 ?

0 a^ d2 ? 0

? ? ? ?

? ? 0 ? ? ? ? a^ dn ? ? 0

? 若 a 是标量,A 是方阵,且 [V,D] = eig(A),则 a^A = V*(a^D)/V ? 若 A, P 均是矩阵,则 A^P 无定义


? 矩阵 Kronecker 乘积的定义
设A是n×m矩阵,B是p×q矩阵,则A与B的kronecker乘积为:
? a1 1 B ? a B ? 21 C ? A? B ? ? ? ? ? an1 B a1 2 B a 22 B ? an2 B ? ? ? ? a1 m B ? ? a2m B ? ? ? ? a nm B ?

? Kronecker 乘积的性质
? A? B
? ?

是 np×mq 矩阵;通常 A ? B ? B ? A

任何两个矩阵都有 Kronecker 乘积 Matlab 中实现两个矩阵 Kronecker 相乘的函数为 kron(A,B) Kronecker乘积有时也称张量积

矩阵的数组运算
? 数组运算:对应元素进行运算
? ?

数组运算包括:点乘、点除、点幂

相应的数组运算符为: “.* ” , “./ ” , “.\ ” 和 “ .^ ” 点与算术运算符之间不能有空格!

例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];
>> C=A.*B; D=A./B; E=A.\B; F=A.^B; 参与运算的对象必须具有相同的形状!

函数取值
? 函数作用在矩阵上的取值
设 x 是变量, f 是一个函数
?

当 x = a 是标量时,f(x) = f(a)也是一个标量

?

当 x = [a, b, … , c] 是向量时,f(x)= [f(a), f(b), … , f(c)]
f 作用在 x 的每个分量上

?

若 A 是矩阵,则 f(A) 是一个与 A 同形状的矩阵

函数取值
? exp( a 11 ) ? ? exp( a 21 ) exp( A ) ? ? ? ? ? exp( a ) m1 ? exp( a 12 ) exp( a 22 ) ? exp( a m 2 ) ? ? ? ? exp( a 1 n ) ? ? exp( a 2 n ) ? ? ? ? exp( a mn ) ? ?

例:

例:>> x=[0:pi/4:pi]; A=[1 2 3; 4 5 6];
>> y1=sin(x); y2=exp(A); y3=sqrt(A);

怎样计算 eA ?

矩阵的超越函数

? Matlab 提供了三种矩阵函数:expm、sqrtm、logm
详情参见联机帮助(help expm / sqrtm / logm )

? 更一般的矩阵函数: funm
?

funm(A,@fun)

参数 fun 的可以是 exp,,log,cos,sin,cosh,sinh

矩阵与数的运算
? 加减:矩阵的每个元素都与数作加减运算 ? 数乘:矩阵的每个元素都与数作乘法运算

? 矩阵除以一个数:每个元素都除以这个数
? 点幂:
? 底为矩阵,指数为标量 ? 底为标量,指数为矩阵

数与数组的点幂
例:x=[1 2 3]; y=[4 5 6];
x.^y =[1^4,2^5,3^6]=[1,32,729]
x.^2 =[1^2,2^2,3^2]=[1,4,9] 2 .^x = ? 2 .^[x;y]= ?

.^ 前面留个空格

Matlab中的所有 标点符号必须在 英文状态下输入

Matlab中常见数学函数
sin、cos、tan、cot、sec、csc、…

asin、acos、atan、acot、asec、acsc、… exp、log、log2、log10、sqrt
abs、conj、real、imag、sign fix、floor、ceil、round、mod、rem max、min、sum、mean、sort、… det、inv、eig、rank、… …… ① log 是自然对数,即以 e 为底数 ② mod(x,y) 结果与 y 同号,rem(x,y) 则与 x 同号 ③ max 等函数的参数是矩阵时,是作用在矩阵各列上

上机作业
1. 试分别生成 5 阶的单位阵、8 阶均匀分布的随机矩阵 及其下三角矩阵 2. 生产列向量 x=[1, 3, 5, 7, 9, … , 29] 3. 生成以 x 的前 5 个元素为对角线的矩阵 A 4. 生成一个与 A 同阶的正态分布的随机矩阵 B 5. 输出 A 与 B 的 kronecker 乘积矩阵 C 6. 生成由 B 与其同阶魔方矩阵点乘得到的矩阵 D 7. 生成由 D 的第 2、4、5 行和第4、1 列组成的子矩阵 E 8. 求出矩阵 E 的最大元素 9. 教材第 53 页,1、2、3、4、5


相关文章:
MATLAB数值与矩阵运算
本 讲主要讲述矩阵的表示以及矩阵的基本运算。 1.1 矩阵的表示 1.1.1 数值矩阵的生成 1.实数值矩阵输入 MATLAB 的强大功能之一体现在能直接处理向量矩阵。...
matlab矩阵和向量的相关计算
matlab矩阵向量的相关计算_工学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档 matlab矩阵向量的相关计算_工学_高等教育_教育专区。实验目的: 学习...
Matlab中的向量运算
由于在 MATLAB矩阵向量重要得多,此 类函数将在下节矩阵中详细介绍,专门对向量运算感兴趣的读者可参考下一节。 2.2.2 向量的基本运算 1.加(减)与数加...
Matlab的矩阵运算范例
一、矩阵运算的范例 输入 Matlab 指令 说明 a=[1 2 3;4 5 6;7 8 9] ...向量的产生 输入 Matlab 指令 说明 执行结果 x=1:5 建立由 1 到 5 的列 ...
MATLAB基本矩阵运算
一、实验目的 1、 掌握向量和矩阵的创建方法; 2、 掌握向量和矩阵元素的索引方法; 3、 掌握向量和矩阵的基本操作; 4、 利用 MATLAB 编写程序进行矩阵运算。 二...
矩阵及其基本运算matlab编程模版
第1章 矩阵及其基本运算 第1章 矩阵及其基本运算 MATLAB,即“矩阵实验室” ,...友矩阵 函数 compan 格式 A = compan(u) 例 1-14 %u 为多项式系统向量,...
matlab矩阵运算和数组运算
matlab矩阵运算和数组运算_计算机软件及应用_IT/计算机_专业资料。使用MATLAB进行计算...(500,1); %令解向量 x 为全 1 的 500 元列向量 b=A*x; cond(A) ...
实验1 Matlab软件的使用及基本运算,矩阵与向量
数学实验报告实验序号:01 班级: 时间 3 月 2 日姓名: 学号: 实验 Matlab 软件的使用及基本运算,矩阵与向量。 名称 实验目的: 1、熟悉 Matlab 软件的使用; 2...
用MATLAB进行矩阵的运算
第1章 矩阵及其基本运算 MATLAB,即“矩阵实验室” ,它是以矩阵为基本运算单元...友矩阵 函数 compan 格式 A = compan(u) 例 1-14 %u 为多项式系统向量,...
第二章 MATLAB数值与矩阵运算
矩阵和数组的概念 在 MATLAB运算中,经常要使用标量、向量矩阵和数组,这几个名称的定义如下: ? 标量:是指 1× 的矩阵,即为只含一个数的矩阵。 1 ? ...
更多相关标签:
matlab矩阵运算 | matlab 矩阵变向量 | matlab 矩阵转向量 | matlab把向量变成矩阵 | matlab矩阵和向量相乘 | matlab向量变成矩阵 | matlab求矩阵特征向量 | matlab将矩阵变成向量 |