第二讲 MATLAB中的矩阵运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Company
Logo
对于二维数组,访问和赋值时, A(r,c) 表示提取二维数组A中第r行,第c列的元素; A(r,:) 表示提取二维数组A中第r行的所有元素; A(:,c) 表示提取二维数组A中第c列的所有元素; A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到 第n2列的所有元素(提取子块)。 A(:):得到一个长列向量,该向量的元素按矩阵的 列进行排列。
Copyright © by ARTCOM PT All rights reserved.
7
www.art-com.co.kr
一、 矩阵的生成
x =0.9501 0.2311 0.6068 0.4860 0.8913
Company
Logo
x([1 2 3 4 4 3 2 1]) %对元素可以重复寻访,使所得数组长度 允许大于原数组。 ans = Columns 1 through 7 0.9501 0.2311 0.6068 0.4860 0.4860 0.6068 0.2311 Column 8 0.9501 x([1 4])=[1 1] %把当前x数组的第一、四个元素都赋值为1 ans = 1.0000 0.2311 0 1.0000 0.8913
Copyright © by ARTCOM PT All rights reserved.
6
www.art-com.co.kr
一、 矩阵的生成
也可以一次访问或修改一个子数组,如:
x =0.9501 0.2311 0.6068 0.4860 0.8913
Company
Logo
x([1 2 5]) %寻访数组x的第一、二、五个元素组成的子数组。 ans = 0.9501 0.2311 0.8913 x(find(x>0.5)) %由大于0.5的元素构成的子数组 ans = 0.9501 0.6068 0.8913
一、 矩阵的生成
>> B=A (1:2, : ) B= 1 2 3 4 5 6
Company
Logo
通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素 构成的一个新的矩阵。在这里,冒号代替了矩阵A的所有列。 同理
>> C=A (:,2:3) C是由矩阵A的2到3列相应的所有列 C= 的元素构成的一个新的矩阵,在这里, 2 3 冒号代替了矩阵A的所有行。 5 6 8 9
一、 矩阵的生成
Company
Logo
矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB 语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩 阵的操作为基础的。
矩阵的生成
在MATLAB中生成矩阵的方法共有三种:直接输入法、外 部文件读入法、特殊矩阵的函数生成法。 直接输入法 直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤 其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以 下几点:
Company
Logo
x(3:end) %寻访数组x的寻访从第3个到最后一个元素。 ans = 0.6068 0.4860 0.8913
x(1:3) %寻访前三个元素组成的子数组 ans = 0.9501 0.2311 0.6068
x(3:-1:1) ans = 0.6068 %由前三个元素倒排构成的子数组 0.2311 0.9501
事先在记事本中 建立文件: 1 1 1 (并以data1.txt保存) 1 2 3 1 3 6 在MATLAB命令窗口中输入: >> load data1.txt >> data1 data1= 1 1 1 1 2 3 1 3 6
www.art-com.co.kr
Copyright © by ARTCOM PT All rights reserved.
Company
Logo
另外,通过使用冒号,可以截取指定矩阵中的指定行、列或 元素,例如: >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9
Copyright © by ARTCOM PT All rights reserved.
9
www.art-com.co.kr
Company
Logo
3 4
a*b=[13 23; 29 51]
a^3=[37 54; 81 118] 只有方阵才可以求幂。
Copyright © by ARTCOM PT All rights reserved.
21
www.art-com.co.kr
二、MATLAB的矩阵运算
a/b运算等效于求a*x=b的解 a/b=[-0.50 0.50; 3.50 –1.50] a\b等效于求x*b=a的解 a\b=[-1 -1;2 3]
12
Copyright © by ARTCOM PT All rights reserved.
www.art-com.co.kr
一、 矩阵的生成
外部文件读入法 命令: Load+文件名[参数]
Company
Logo
作用:Load函数将会从文件名所指定的文件中读取数据,并将 输入的数据赋给以文件名命名的变量,例如:
Company
Logo
(1)矩阵和标量的运算
设:a=[a1, a2, …, an], c是标量.
a+c=[a1+c, a2+c, …, an+c] a.*c=[a1*c, a2*c, …, an*c] a./c= [a1/c, a2/c, …, an/c](右除) a. ﹨c= [c/a1,c/a2, …, c/an] (左除)
Copyright © by ARTCOM PT All rights reserved.
3
www.art-coBaidu Nhomakorabea.co.kr
一、 矩阵的生成
Company
Logo
输入矩阵时要以“[ ]”为其标识符号,矩阵的所有 元素必须都在括号内。

• 矩阵同行元素之间由空格或逗号分隔,行与行之间 用分号或回车键分隔。 • 矩阵大小不需要预先定义。
Copyright © by ARTCOM PT All rights reserved.
19
www.art-com.co.kr
二、MATLAB的矩阵运算
矩阵的运算 (1)矩阵和标量的运算 设:a=[a1, a2, …, an], c是标量. a.^c= [a1^c, a2^c, …, an^c] c.^a= [c^a1, c^a2, …, c^an] (2)矩阵和矩阵的运算 如:a=[1 2;3 4];b=[3 5; 5 9]
• 矩阵元素可以是运算表达式。
• 若“[ ]”中无元素表示空矩阵。
Copyright © by ARTCOM PT All rights reserved.
4
www.art-com.co.kr
一、 矩阵的生成
子数组的访问与赋值 对于一维数组,访问和赋值时, A(r) 表示提取一维数组A中第r个元素;
数学实验
第二讲 MATLAB中 的矩阵运算
ompany
Logo
主要内容
Company
Logo
MATLAB中矩阵的生成 MATLAB的矩阵运算 MATLAB的帮助系统和文件格式
Copyright © by ARTCOM PT All rights reserved.
2
www.art-com.co.kr
Copyright © by ARTCOM PT All rights reserved.
8
www.art-com.co.kr
一、 矩阵的生成
•矩阵操作时冒号的作用
用于生成等步长的向量,默认步长值为1。
>> a=1:0.5:4 a= Columns 1 through 7 1 1.5 2 2.5 3 3.5 4
13
一、 矩阵的生成
特殊矩阵的函数生成法。 单位矩阵: 零矩阵: 一矩阵: 对角矩阵: 随机矩阵: eye(m,n); eye(m) zeros(m,n); zeros(m) ones(m,n); ones(m) 对角元素向量 V=[a1,a2,…,an] A=diag(V) rand(m,n),rand(m) 产生一个均匀分布的随机矩阵 randn(m,n) 产生一个正态分布的随机矩阵 randperm(n) 产生1~n之间整数的随机排列
一、 矩阵的生成
特殊矩阵的函数生成法。 命令: 产生线性等分向量 函数: linspace 格式1: y = linspace(a, b) 作用:在(a, b)上产生100个线性等分点。 格式2:y = linspace(a, b, n) 作用:在(a, b)上产生n个线性等分点。 例如:y=linspace(1,7,5) y= 1.0000 2.5000 4.0000 5.5000 7.0000
Copyright © by ARTCOM PT All rights reserved.
Company
Logo
16
www.art-com.co.kr
一、 矩阵的生成
特殊矩阵的函数生成法。
Company
Logo
命令: 产生整数的随机排列 函数: randperm 格式: y = randperm(n)
10
Copyright © by ARTCOM PT All rights reserved.
www.art-com.co.kr
一、 矩阵的生成
冒号还可以用于“全元素”赋值: >> A=zeros(2,4) A= 0 0 0 0 0 0 0 0 >>A(:)=1:8 回车 >> A = 1 3 2 4 5 6 7 8 %创建 的全零数组
14
Company
Logo
Copyright © by ARTCOM PT All rights reserved.
www.art-com.co.kr
一、 矩阵的生成
例如:
Company
Logo
》 eye(2,3)
ans= 100 010 》ones(2,3) ans= 111 111
》eye(2) ans= 10 01
例如:>> randperm(6) ans = 3 2 1 5 4 6
Copyright © by ARTCOM PT All rights reserved.
17
www.art-com.co.kr
一、 矩阵的生成
Company
Logo
复数矩阵的生成:
>> x1=1; >> x2=3; >> A=[x1*i,x2;x1-x2*i,x2+x1*i];
Company
Logo
Copyright © by ARTCOM PT All rights reserved.
20
www.art-com.co.kr
二、MATLAB的矩阵运算
如:a=[1 2;3 4];b=[3 5; 5 9],则 》c=a+b 》c= 4 8 7 13 d=a-b d= -2 -2 -3 -5 e = a’ e= 1 2
Copyright © by ARTCOM PT All rights reserved.
5
www.art-com.co.kr
一、 矩阵的生成
子数组的访问与赋值
Company
Logo
指令修改:要给矩阵A第i行,第j列的元素赋值为k,可以用语句 A(i,j)= k; 来实现修改 例如: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
》ones(2) ans= 11 11 A= 500 070 002
15
》zeros(2,3) ans= 000 000 》zeros(2) ans= 00 00
》V=[5 7 2]; A=diag(V)
Copyright © by ARTCOM PT All rights reserved.
www.art-com.co.kr
A= 0 + 1.0000i 3.0000 1.0000 - 3.0000i 3.0000 + 1.0000i
Copyright © by ARTCOM PT All rights reserved.
18
www.art-com.co.kr
二、MATLAB的矩阵运算
矩阵的运算 转置,四则运算与幂运算 ’ + * \和 / ^ .* .\ ./ .^
Company
Logo
%全元素赋值方式 全元素赋值时是按照先行后列的顺序 进行的
Copyright © by ARTCOM PT All rights reserved.
11
www.art-com.co.kr
一、 矩阵的生成
x =0.9501 0.2311 0.6068 0.4860 0.8913
相关文档
最新文档