第2章 MATLAB矩阵和数组运算

合集下载

matlab第二章矩阵运算基础

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)

MATLAB基础教程 第2章 数组、矩阵及其运算

MATLAB基础教程 第2章 数组、矩阵及其运算

写出MATLAB表达式。 解:根据MATLAB的书写规则,以上MATLAB表达式为: (1)y=1/(a*log(1-x-1)+C1) (2)f=2*log(t)*exp(t)*sqrt(pi) (3)z=sin(abs(x)+abs(y))/sqrt(cos(abs(x+y))) (4)F=z/(z-exp(T*log(8)))
命令:X(3:-1:1)
命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.1 数组(矩阵)的创建和寻访
2. 二维数组的创建和寻访
例2-3 综合练习。将教材P.31~P.44的实例按顺序在MATLAB的 command窗口中练习一遍,观察并体会其输出结果。 (注意变量的大小写要和教材上的严格一致。)
A./B
B.\A
A的元素被B的对应元素相除
(与上相同)
第二章 数组、矩阵及其运算
2.3 数组、矩阵的其他运算
1. 乘方开方运算
数组的乘方运算与power函数 格式:c=a.^k或c=power(a,k) 例如: >> g=[1 2 3;4 5 6] >>g.^2 矩阵的乘方运算与mpower函数 格式:C=A^P或C=mpower(A,P) 注意:A必须为方阵
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的加法、减法
运算规则是:若A和B矩阵的维数相同,则可以执行矩阵的加减运算, A和B矩阵的相应元素相加减。如果维数不相同,则MATLAB将给出
出错信息。
第二章 数组、矩阵及其运算
2.2 数组、矩阵的运算
3. 矩阵的乘法

MATLAB第二章

MATLAB第二章

2 特殊数据判断函数
常用的特殊数据判断函数:
• isinf(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为无穷大inf时设置为1, 否则为0。 • isnan(A) 返回一个与A同型的数组,该数组元素的 值根据A的相应位置元素的值为NaN 时设置为1,否 则为0。 • isfinite(A) 返回一个与A同型的数组,该数组元素 的值根据A的相应位置元素的值为有限值时设置为1, 否则为0。
关系运算规则
关系运算符的运算法则为: • 1 当两个比较量是标量时,直接比较两数的大 小。若关系成立,关系表达式结果为1,否则 为0。 • 2 当参与比较的量是两个同型的矩阵时,比较 是对两矩阵相同位置的元素按标量关系运算规 则逐个进行,并给出元素比较结果。最终的关 系运算的结果是一个与原矩阵同型的矩阵,它 的元素由0或1组成。
当a=[pi NaN Inf -Inf]时,分析下列 语句的执行结果
• isinf (a) • isnan (a) • isfinite (a)
例 当A=[-6,NaN,Inf,5;-Inf,-pi, eps,0] 时,分析下列语句的执行结果。 • • • • • • • all(A) all(all(A)) any(A) any(any(A)) isnan(A) isinf(A) isfinite(A)

建立任意的3×3的矩阵,并求 出能被3整除的元素。
9 -1;-3 -9 0];
A=[1 0 3 ;2
%生成3×3的矩阵A P=rem(A,3)==0
%判断A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩阵中能被5整除的元素呢? P=rem(A,5)==0
例 求三阶魔方矩阵中绝对值大于7的元素。 a=magic(3);

MATLAB教学 最新第二章 矩阵与数组2-4

MATLAB教学 最新第二章 矩阵与数组2-4

把D的逆阵右乘以B,记作/D,称之为右除.
2.5.3 基本数组运算 1,数组转置 数组转置的操作符是在矩阵转置操作符前加符号".".(实数情 况下等价) 例:数组转置操作
2,数组幂 数组幂运算符 (单个符号自身运算)就是在矩阵运算符前加上符 号".".
3.数组乘法
2.5.4 基本数学函数 在MATLAB中部分函数可以用来进行基本的 数学运算,有三角函数,指数运算函数,复数 运算函数等. 注意:这些函数的参数可以是矩阵,向量或者 多维数组,函数在处理参数时,都是按照数组 运算运算的规则来进行的. 函数数目较多,不一一列出,后面用到时再 作说明. 2.5.5 矩阵(数组)操作函数
例2-5 使用logspace函数创建向量.
上面创建的都是行向量,即创建的都 是一行n列的二维数组.如果需要创建 列向量,即n行一列的数组,则需要使 用分号作为元素与元素之间的间隔或 者直接使用转置运算符" ' ".
2.3 创建矩阵 在编程语言中,矩阵和二维数组一般指的是同一 个概念,在M语言中,矩阵的元素可以为任意的 MATLAB数据类型的数值或者对象.创建矩阵的方 法也有多种,不仅可以直接输入元素,还可以使用 MATLAB MATLAB的数组编辑器编辑矩阵的元素. 2.3.1直接输入法 直接输入矩阵元素创建矩阵的方法适合创建元素较 少的矩阵. 例2-7 用直接输入矩阵元素的方法创建矩阵.
length获取向量长度若输入参数为矩阵或多维数组则返回各个维尺寸的最大值ndims获取矩阵或多维数组的维数numel获取矩阵或数组的元素个数disp显示矩阵或者字符串的内容cat合并不同的矩阵或者数组reshape保持矩阵元素的个数不变修改矩阵的行数和列数repmat复制矩阵元素并扩展矩阵fliplr交换矩阵左右对称位置上的元素flipud交换矩阵上下对称位置上的元素flipdim按照指定的方向翻转交换矩阵元素find获取矩阵或数组中非零元素的索引55例

第2章 MATLAB数据及其运算.

第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5

复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。

第2-1章 MATLAB矩阵及其运算

第2-1章  MATLAB矩阵及其运算

例2-3 分别建立3×3、3×2和与矩阵A同样 大小的零矩阵。 (1) 建立一个3×3零矩阵。 zeros(3) (2) 建立一个3×2零矩阵。 zeros(3,2) (3) 设A为2×3矩阵,则可以用 zeros(size(A))建立一个与矩阵A同样大小 零矩阵。 A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样 大小的零矩阵
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表示某一维的末尾元素 下标。
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第 一列外,其他每个元素都与左上角 的元素相同。生成托普利兹矩阵的 函数是toeplitz(x,y),它生成一个以x 为第一列,y为第一行的托普利兹 矩阵。这里x, y均为向量,两者不 必等长。toeplitz(x)用向量x生成一个 对称的托普利兹矩阵。例如 T=toeplitz(1:6)
(5) 伴随矩阵 MATLAB生成伴随矩阵的函数是 compan(p),其中p是一个多项式 的系数向量,高次幂系数排在 前,低次幂排在后。例如,为 了求多项式的x3-7x+6的伴随矩 阵,可使用命令: p=[1,0,-7,6]; compan(p)

MATLAB运算基础(第2章)答案

MATLAB运算基础(第2章)答案

实验01讲评、参考答案讲评未交实验报告的同学名单数学:6人(11、12级)信科:12-04, 12-22, 13-47批改情况:问题1:不仔细,式子中出错。

问题2:提交的过程不完整。

问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。

问题4:截屏窗口没有调整大小。

附参考答案:《MATLAB软件》课内实验王平实验01 MATLAB运算基础(第2章MATLAB数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB 的方法。

2. 熟悉MATLAB 命令窗口的组成。

3. 掌握建立矩阵的方法。

4. 掌握MATLAB 各种表达式的书写规则以及常用函数的使用。

二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

1.1 计算三角函数122sin 851z e=+(注意:度要转换成弧度,e 2如何给出) 示例:点击Command Window 窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。

命令窗口中的执行过程:1.2 计算自然对数221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦(提示:clc 命令擦除命令窗口,clear 则清除工作空间中的所有变量,使用时注意区别,慎用clear 命令。

应用点乘方) 命令窗口中的执行过程:1.3 求数学表达式的一组值0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。

命令窗口中的执行过程:1.4 求分段函数的一组值2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5提示:用逻辑表达式求分段函数值。

命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。

第二章 MATLAB基础知识

第二章 MATLAB基础知识

2.2 数组及其运算
例 ascii_a=double(a) %将字符转换为相应的双精度值 ascii_a = Columns 1 through 13 84 104 105 115 32 105 115 32 97 110 32 101 120 Columns 14 through 19 97 109 112 108 101 46 例 char(ascii_a) %将双精度值转换为字符 ans = This is an example. 例 w=find(a>=‘a’&a<=‘z’); %查找所有小写字母的位置 ascii_a(w)=ascii_a(w)-32; %将小写字母ascii值转换为大写 char(ascii_a) %将双精度值转换为字符 ans = THIS IS AN EXAMPLE.
2.2 数组及其运算
2.2.2 数组的运算
运算 加 运算符 + 表达式 a+b
减 乘 除 幂 点乘 点除 点幂
*
/或\ ^ .* ./或.\ .^
a-b a*b
a/b或a\b a^b a .* b a ./ b或a.\b a.^b
2.2 数组及其运算
例 a=3 14 7 1 4 9 3 6 10 b=2 8 3 2 10 0 11 2 7 a+b ans= 5 22 10 3 14 9 14 8 17
2.2 数组及其运算
高维数组的创建
直接通过“全下标”元素赋值方式创建高维数组; 由若干个同样大小的低维数组组合成高维数组; 由函数ones、zeros、rand、randn直接创建标准
高维数组;
借助cat、repmat、reshape等函数构造高维数组。
Am
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015年9月19日星期六 16
2.1.3 用冒号表达式建立矩阵
• 利用冒号表达式建立矩阵时,只需要把冒 号表达式加中括号就可以了。需要注意的 是:用冒号表达式建立矩阵一定要每行的 元素个数相等。冒号表达式格式为:
a1:a2:a3 其中,a1是起始数据,a2是步长,a3是终止数据 。若a2省略不写,则默认步长为1。
>>clear >>A=eye(3) A=1 0 0 0 1 0 0 0 1 >>B=[1 2 3;4 5 6;7 8 9] B=1 2 3 4 5 6 7 8 9 >>X=A\B X=1 2 3 4 5 6 7 8 9 >>X=B/A %矩阵右除,求X*A=B的解 X=1 2 3 4 5 6 7 8 9
2.2.2 乘法
• 两个矩阵A、B进行乘法运算(A· B)时,矩 阵A(n×m)的列数必须和矩阵B(m×k) 的行数相等,乘法运算后生成一个n×k阶 矩阵。
2015年9月19日星期六
23
1.两个矩阵相乘
• 【例2.11】求两个矩阵X、Y相乘后得到的矩阵Z。 • 解 在MATLAB命令提示符下输入:
• 解 在MATLAB命令提示符下输入:
>> clear >> X=eye(5) X=1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 >> Y=eye(2,3) Y=1 0 0 0 1 0
2015年9月19日星期六
0 0 0 0 1
8
2.随机矩阵函数rand()
• 随机矩阵的特点是由计算机随机产生数据 而生成的矩阵。通过运行rand()函数可以生 成随机矩阵,调用方法为:
– 矩阵元素必须在“* +”内。 – 矩阵的同行元素之间用空格(或“,”)隔开 – 矩阵的行与行之间用“;”(或回车符)隔开 – 矩阵的元素可以是数值、变量、表达式或函数 – 矩阵的尺寸不必预先定义
2015年9月19日星期六 3
2.1.1 直接建立矩阵
• 直接建立矩阵的方法就是把矩阵的各元素 用中括号括起来,括号内同一行的元素之 间用空格或逗号分开,行与行之间用分号 或回车符分开。 • 在MATLAB环境下,分号具有三个作用:
0.6154 0.7919 0.9218 0.7382 0.1763
0.4057 0.9355 0.9169 0.4103 0.8936
0.0579 0.3529 0.8132 0.0099 0.1389
0.2028 0.1987 0.6038 0.2722 0.1988
2015年9月19日星期六
10
2015年9月19日星期六
15
【例2.7】建立一个托普利兹矩阵
• 解 在MATLAB命令提示符下输入:
>> clear >> b=[8 9 4 5 7]; >> c=[ 8 2 3 12 15 10]; >> A=toeplitz(b,c) A=8 2 3 12 15 10 9 8 2 3 12 15 4 9 8 2 3 12 5 4 9 8 2 3 7 5 4 9 8 2
2015年9月19日星ze(X)) ans=1 1 1 1 1 1 1 1 1 >> Y=[X,eye(size(X));ones(size(X)),X] Y=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9 >> Z=[X X+1] Z=1 2 3 2 3 4 4 5 6 5 6 7 7 8 9 8 9 10
>> clear >> X=[1 2 3 4;5 6 7 8] X=1 2 3 4 5 6 7 8 >> Y=4*X Y=4 8 12 16 20 24 28 32
2015年9月19日星期六 25
3.矩阵的乘方
• 【例2.13】求矩阵的乘方Y=X2、Y=X3。 • 解 在MATLAB命令提示符下输入:
2015年9月19日星期六
6
1.单位矩阵函数eye()
• 单位矩阵的特点是主对角线上元素为1,其 他位置上的元素全为0。通过调用函数eye() 可以建立单位矩阵,调用方法是:
Y=eye(n) 用于生成n×n阶单位阵。 Y=eye(m,n) 用于生成m×n阶单位阵。
2015年9月19日星期六
7
【例2.2】创建一个5×5阶单位阵
3.魔方矩阵函数magic()
• 魔方矩阵的特点是每行、每列及两条对角 线上的元素和都相等。对于n阶魔方阵,其 元素由1,2,3,…,n×n共n×n个整数组 成。函数为magic(),调用方法为:
Y=magic(n) 生成n×n阶魔方矩阵。
2015年9月19日星期六
11
【例2.5】建立一个魔方矩阵
2015年9月19日星期六 28
2.3 矩阵线性运算
• 矩阵的线性运算包括矩阵的特征值与特征 向量的求法、正交基、二次型、秩和线性 相关性等运算。 • MATLAB为矩阵的线性运算提供了大量的运 算函数,通过调用这些函数,可以进行相 应的矩阵线性运算。
2015年9月19日星期六
29
2.3.1 矩阵的特征值
>> X=[1 3 5 7; 2 4 6 8]; >> Y=[1 2 3; 4 5 6; 7 8 9; 5 4 0]; >> Z=X*Y Z=83 85 66 100 104 84
2015年9月19日星期六 24
2.矩阵的数乘
• 【例2.12】求数乘矩阵Y=4· X。 • 解 在MATLAB命令提示符下输入:
第2章 MATLAB矩阵和数组运算
2015年9月19日星期六
1
第2章 MATLAB矩阵和数组运算
• 学习目标
– 了解稀疏矩阵的相关内容; – 理解矩阵和数组运算的命令; – 掌握使用MATLAB命令建立矩阵及矩阵的算术运 算、线性运算、矩阵的分解。
2015年9月19日星期六
2
2.1 矩阵的建立
• 矩阵的建立共有两种方法,可以通过 MATLAB命令直接建立矩阵,也可以通过 MATLAB提供的函数建立相应的矩阵。 • 在MATLAB中创建矩阵有以下规则:
vander(x) 其中x为一给定向量,可以用此向量生成一个范 得蒙矩阵。
2015年9月19日星期六
13
【例2.6】利用向量m建立一个范得 蒙矩阵
• 解 在MATLAB命令提示符下输入:
>> m=[2 3 4 5]; >> vander(m) ans=8 4 2 1 27 9 3 1 64 16 4 1 125 25 5 1
2015年9月19日星期六 30
2.3.1 矩阵的特征值
• 2.复对角矩阵转化为实对角矩阵cdf2rdf()
– 通过调用函数cdf2rdf()可以将复对角矩阵转化为 实对角矩阵。调用格式为: – [V,D]=cdf2rdf(v,d) – 将复对角阵d变为实对角阵D,在对角线上,用 2×2实数块代替共轭复数对。
2015年9月19日星期六
14
5.托普利兹(Toeplitz)矩阵函数 toeplitz()
• 托普利兹(Toeplitz)矩阵的特点是除第一 行、第一列外,其他每个元素都与左上角 的元素相同。生成托普利兹矩阵的函数为 toeplitz()。调用方法为:
A=toeplitz(b,c) 生成一个把b作为第1列、把c作为第一行、其他 元素与左上角相邻元素相等的矩阵。
2.2.3 矩阵相除
• 在MATLAB中,矩阵相除分为左除(\)和右 除(/)。X=A\B是方程AX=B的解;而 X=A/B是方程XA=B的解。注意左除和右除里 面的A、B必须就有相应的行和列。
2015年9月19日星期六
27
【例2.14】已知矩阵A、B,求矩阵X
• 解 在MATLAB命令提示符下输入:
• 解 在MATLAB命令提示符下输入:
>> clear >> Y=magic(4) Y=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
2015年9月19日星期六
12
4.范得蒙(Vandermonde)矩阵函 数vander()
• 范得蒙(Vandermonde)矩阵的特点是最后 一列全为1,倒数第二列为一个指定的向量 ,其他各列是其后列与倒数第二列的点积 。生成范得蒙矩阵的函数为vander(),调用 方法为:
• 1.矩阵特征值与特征向量的求法 • 如果A是n×n矩阵,若存在实数λ和向量x满 足式子Ax=λx,则λ为A的特征值,x为A的 特征向量。 • 计算矩阵A的特征值和特征向量的函数是 eig(A),有以下3种常用的调用格式:
– (1)E=eig(A): – (2)[V,D]=eig(A): – (3)[V,D]=eig(A,'nobalance'):
>> clear >> X=[1 2 3;4 5 6;7 8 9] X=1 2 3 4 5 6 7 8 9 >>Y=X^2 Y=30 36 42 66 81 96 102 126 150 >> Y=X^3 Y=468 576 684 1062 1305 1548 1656 2034 2412
2015年9月19日星期六 26
>> A=[1, 2, 3; 4, 5, 3; 9, 5, 6]; >> B=[12, 11, 10; 8, 7, 5; 1, 5, 2]; >> A+B ans=13 13 13 12 12 8 10 10 8 >> A-B ans=-11 -9 -7 -4 -2 -2 8 0 4
相关文档
最新文档