第二章 matlab矩阵及其运算

合集下载

第2章__MATLAB矩阵及其运算

第2章__MATLAB矩阵及其运算

3.利用冒号表达式建立一个向量(增量赋值) .利用冒号表达式建立一个向量(增量赋值) 冒号表达式可以产生一个行向量,标准格式是: 冒号表达式可以产生一个行向量,标准格式是: x=e1:e2:e3 其中e1为初始值 为初始值, 为步长 为步长, 为终止值 为终止值。 其中 为初始值,e2为步长,e3为终止值。
2、矩阵变量的性质 、 矩阵变量的维数可以用size( )函数获得: 函数获得: 矩阵变量的维数可以用 函数获得 例: 矩阵标识符为[ , 矩阵标识符为 ],如 果是1*1矩阵,则可以 矩阵, 果是 矩阵 省略矩阵标识符; 省略矩阵标识符; 矩阵变量的各行之间 用分号隔开, 用分号隔开,列之间 用逗号或空格隔开;
计算表达式的值,并显示计算结果。 例2-1 计算表达式的值,并显示计算结果。 在MATLAB命令窗口输入命令: 命令窗口输入命令: 命令窗口输入命令 x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 其中pi和 都是 都是MATLAB预先定义的变量, 预先定义的变量, 其中 和i都是 预先定义的变量 分别代表代表圆周率π和虚数单位。 分别代表代表圆周率 和虚数单位。 和虚数单位 输出结果是: 输出结果是: z= -0.3488 + 0.3286i
2.1.1 变量与赋值语句
在matlab中,变量定义为矩阵是最基本的变量定 中 义之一,因此, 义之一,因此,matlab语言的运算是基于矩阵的 语言的运算是基于矩阵的 运算。 运算。
1.变量命名 .
变量名是以字母开头, 在MATLAB 中,变量名是以字母开头,后接字 母、数字或下划线的字符序列。在MATLAB中, 数字或下划线的字符序列。 中 变量名区分字母的大小写, 变量名区分字母的大小写,且自定义的变量名最 好不要和matlab中的专用变量及函数同名。 中的专用变量及函数同名。 好不要和 中的专用变量及函数同名 A=3; a=3; _q=4; a_1=5; B=[1 2;3 4]

第2章MATLAB矩阵及其运算

第2章MATLAB矩阵及其运算

·30·
第 2 章 MATLAB 矩阵及其运算
的求解方法时,因不完善的设计导致的内存溢出。在此,主要针对第二种情况进行分析并 给出相应的解决方案。
1.变量名区分大小写 变量名的定义必须符合以下条件: 必须以字母开头。 由字母、数字、下划线组成。 最长为 31 个字符。 一些用户不可以清除的变量,如 ans、eps、pi、Inf、NaN 等。 【例 2-1】 变量定义举例如下:
A a king
在 MATLAB 中的变量不需要事先定义,在遇见新的变量名时,MATLAB 会自动建立 并且为其分配存储空间。如果遇见已经出现的变量,会重新为其分配空间。
a = complex(2,9) b = real(a) c = imag(a)
MATLAB 运行结果如下:
a= 2.0000 + 9.0000i
b= 2
c= 9
3.除了可以把数值直接赋给变量,还可以将表达式、矩阵赋给变量
对于矩阵的讲解,会在后面详细讲解。 【例 2-4】 变量的赋值举例如下:
a=[1 4 7] B=abs(6+13i) C=[]
(4)不同数据结构的内存。 在 MATLAB 中,8 位、16 位、32 位、64 位的有符号整型或无符号整型分别占用 1、2、4、8 字节空间,单精度、双精度浮点数分别占用 4、8 字节空间。 在 MATLAB 中,复数的存储比较特殊。复数的实部和虚部在内存中是分开存放的, 当在程序中修改复数的实部或虚部时,会在修改数据的同时复制复数的实部和虚部。 在 MATLAB 中,当数组的元素绝大部分为 0 时,MATLAB 一般默认采用稀疏矩 阵进行存储以节省空间。
a=[1,2,3,4,5,6,7,8,9,10]

Matlab矩阵及其运算

Matlab矩阵及其运算

2.2 Matlab矩阵及其操作
2.2.3 特殊矩阵 • 通用特殊矩阵
zeros:产生全0矩阵(零矩阵) ones:产生全1矩阵(幺矩阵) eye:产生单位矩阵 rand:产生0~1间均匀分布的随机矩阵 randn:产生均值为0,方差为1的标准正态分布随 机矩阵
2.2 Matlab矩阵及其操作
2.4 字符串、结构和单元数据
2.4.1 字符串 • 构建
使用‘单撇号’括起来的字符序列,例:str=‘Hello World!’
• 字符串操作
以ASCII码形式存储 获取字符ASCII值:double或abs函数 ASCII转化为字符输出:char函数 例: double('a') abs('a') char(63) (Ex2_12)
定义[ ]为空矩阵,x=[ ] x=[ ]与clear x的区别 将某些元素从矩阵中删除可设置为空矩阵
• 改变矩阵形状
reshape(A,m,n)函数 例:x=[23,45,56,67,78,34,98,65,43,76,12,46] y=reshape(x,3,4) y1=reshape(x,2,6)
• 转置与旋转
转置:单撇号(’),即A’ 旋转:rot90(A,k)函数 左右和上下翻转:fliplr(A)和flipud(A)
2.3 Matlab运算与矩阵分析
2.3.2 矩阵分析 • 矩阵的逆和伪逆:inv(A) 和pinv(A) • 方阵行列式:det(A) • 矩阵的秩与迹:rank(A)和trace(A) • 向量和矩阵范数:norm(V,1)、 norm(V)和 norm(V,inf) • 矩阵条件数: cond(V,1)、 cond(V)和 cond(V,inf) • 矩阵特征值与特征向量:[V,D]=eig(A) (Ex2_11)

MATLAB矩阵及运算

MATLAB矩阵及运算

点乘——元素对元素乘法 叉乘——矩阵对矩阵乘法
对比举例
矩阵的右除、左除
MATLAB的基本处理单元是复数矩阵(标量是一 个1*1的矩阵)。而在《线性代数》理论中没有除 法运算。所以定义了除法为乘法的逆运算。
注意:因为矩阵乘法不满足交换律,即一般 A*B≠B*A,所以除法要考虑“右除”、“左 除”。
2.1.2 变量
变量的命名规则: 1)变量名、函数名对字母的大、小写敏感。 2)变量名由字母、数字和下划线构成。第一个
字母必须是英文字母。 3)有字符个数限制(版本5.0 :最多31个字符)
2.1.2 变量
MATLAB系统默认变量
重点
(注意大小写!)
i或j:
虚单元 正确:5+7j 错误:5+j7
2.1表达式
表达式 (即语句):将变量、数值、函数 用操作符连接起来,就构成了表达式 。
例如:a=(10j+sqrt(10))/2; %注释 ☆行末的“;”用于抑制结果在屏幕上显示
例如: sin(a),sin(b) ,a+b ☆同在一行的表达式,必须用“,”分开
2.2 矩阵的产生与操作
矩阵的产生:
A./Baa31//b b1 3
a2/b2 a4/b4
B.\A
A.\Bbb31//aa13 bb42//aa42B./A
分析:
K/N=K*inv(N)
因为N不是方阵,没有逆 阵,所以报告错误。
K\N=inv(K)*N
因为K的逆阵尺寸2×2, N的尺寸2×3,所以结 果矩阵2×3。
矩阵元素的指数运算
这种战略取得了成功:使人们不在编程细节上化 精力,把注意力集中到科学计算的方法和建模合理性等 大问题上。

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. 矩阵的乘法

第2章 matlab矩阵及其运算

第2章 matlab矩阵及其运算

第2章 MATLAB 矩阵及其运算
2.1.2 MATLAB常用数学函数
MATLAB提供了许多数学函数,函
数的自变量规定为矩阵变量,运算法
则是将函数逐项作用于矩阵的元素上, 因而运算的结果是一个与自变量同维
数的矩阵。
11/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
1. 三角函数 • sin 正弦函数 • asin 反正弦函数 • cos 余弦函数 • tan 正切函数 • cot 余切函数 • sec 正割函数 • csc 余割函数
在MATLAB命令口输入命令:
x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
其中pi和i都是MATLAB预先定义的变量,分别
代表代表圆周率π和虚数单位。 输出结果是:
z =
-0.3488 + 0.3286i
10/128 MALAB 7.X程序设计
18/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
rem与mod的区别
rem(x,y)=x-y.*fix(x./y)
mod(x,y)=x-y.*floor(x./y)
eg: >>x=5;y=3; >>y1=rem(x,y),y2=mod(x,y) >> x=-5;y=3; >>y1=rem(x,y),y2=mod(x,y)
%绝对值 %取复数虚部 %取复数实部 %复数共轭
16/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
4. 取整函数 fix(x) 朝零方向取整 floor(x) 朝负无穷大方向取整 ceil(x) 朝正无穷大方向取整 round(x)四舍五入 mod(x,y) rem(x,y)取x/y的余数要求x,y 必须为相同大小的实矩阵或为标量。 eg: x=5.3 x=-5.3 -5.3 -5 0 5 5.3

MATLAB矩阵及其运算

MATLAB矩阵及其运算

3.矩阵拼接 (1)水平方向拼接:c=[a b]或者 c=[a,b] 垂直方向拼接:c=[a;b]
(2)Cat 函数用于指定方向拼接: m=cat(1,a,b,c,...)垂直拼接; m=cat(2,a,b,c,...)水平拼接; m=cat(3,a,b,c,...)三维数组
(3)repmat 函数用于通过输入矩阵的备份拼接成新的大矩 阵 B=repmat(A,m,n):表示将 A 矩阵做一个最小单元,用 m 行 A 矩阵,n 列 A 矩阵拼成矩阵 B
(8)矩阵的超越函数(直接作用于方阵) sqrtm(a):计算矩阵的平方根。若 a 为对称正定矩阵,则能算 出它的平方根,若 a 矩阵含有负的特征根,则 sqrtm(a)可得到一个复矩阵; 矩阵对数函数 log m 的输入参数的条件与输出结果间的关系 和函数 sqrtm(a)一样; 矩阵指数函数 expm 的功能是求矩阵指数, expm 函数与log m 函数是互逆的;
通用矩阵函数 funm 对矩阵 a 的计算由 fun 定义的函数矩阵 的函数值。
(行,列)
则有 b = 0.0975
(3)多元素访问:(以矩阵 A 为例) A(m,n,q):表示取数组或矩阵 A 的第 m 个元素开始,每隔 n 步,一直到 q 的所有元素; A([m n g]):表示取数组或矩阵 A 中的第 m,n,g 个元素; A(:,c):表示取第 c 列所有元素; A(r,:):表示取第 r 行所有元素; A(i:i+m,:):表示取从第 i 行到 i+m 行的全部元素; A(: ,k:k+n):表示取从第 k 列到 k+n 列的全部元素; A(i:i+m,k:k+n):表示取从第 i 行到 i+m 行内,并在第 k 列到 k+n 列的全部元素。 例如:

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章

MATLAB基础教程第2章

第二章 数组、矩阵及其运算
2.1 数组的创建和寻访
例2-2 一维数组的生成与访问
命令:X=rand(1,5) 命令:X(3) 命令:X([1 2 5]) 命令:X(1:3) 命令:X(3:end) 命令:X(3:-1:1) 命令:X(find(X>0.5)) 命令:X([1 2 3 4 4 3 2 1])
第二章 数组、矩阵及其运算
2.2 矩阵的运算
例2-6 矩阵的乘法(接着上面的例子) A*B 3*A
注意:矩阵相乘时要求A的列数等于B的行数
第二章 数组、矩阵及其运算
2.2 矩阵的运算
A/B(矩阵右除)表示的是方程X*B=A的解 A\B(矩阵左除)表示的是方程A*X=B的解
例2-7 矩阵的除法( 见教材P.23)
第二章 数组、矩阵及其运算
2.3 数组的运算
1、数组的基本运算
例2-8 ( 见教材P.25)
第二章 数组、矩阵及其运算
2.3 数组的运算
数组运算和矩阵运算指令对照表
数组运算 指令 A.’ A=s A+s,A-s s.*A s./A,A.\s A.^n A+B,A-B A.*B A./B B.\A 含义 非共轭转置,相当于conj(A’) 把标量s赋给A中每个元素 标量s分别于A的元素之和(差) 标量s分别于A的元素之积 S分别被A的元素除 A的每个元素自乘n次 对应元素相加(减) 对应元素相加(乘) A的元素被B的对应元素相除 (与上相同) A^n A+B,A-B A*B A /B B\A 方阵A自乘n次 矩阵和(差) 同内维矩阵相乘 A右除B A左除B S*A 标量s分别于A的元素之积 A’ 指令 共轭转置 矩阵运算 含义
第二章 数组、矩阵及其运算

Matlab程序设计第2章矩阵及其运算

Matlab程序设计第2章矩阵及其运算

2.2.2 创建二维数组 方法2:用函数生成特殊矩阵
函数 zeros (全零阵) 格式 B = zeros(n) B = zeros(m,n) 函数 ones (全1阵) 格式 B = ones(n) B = ones(m,n) 函数 eye(单位矩阵) 格式 B = eye(n) B = eye(m,n) %生成n×n全零阵 %生成m×n全零阵
2.2.4二维数组的寻访与赋值
判断数组维数和大小 1) 判断数组维数的指令:ndims 2) 判断数组大小的指令:size 例如:上例中数组A的维数和大小分别为
>> An=ndims(A), As=size(A) An = 2 As = 3 3
表示数组A大小的行数组的长度 (As的长度) 等于数组A的 维数 (An),length(As)=An 数组A的长度指最长维的长度:length(A)=max(As)。
注意: 1) 子数组寻访取决于 x ( index )中的下标index。 2) 下标 index 可以是单个数值或数组,但是 index 的元素取 值必须在 [ 1 , end ] 的范围内。end 为数组最大下标。 3) 子数组赋值时,注意被赋值的子数组长度与送入的数组长 度一致。
2.2.4二维数组的寻访与赋值
%生成n×n全1阵 %生成m×n全1阵 %生成n×n单位阵 %生成m×n单位阵
2.2.2 创建二维数组 方法2:用函数生成特殊矩阵
函数 randn 格式 y = randn(n) y = randn(m,n) %生成n×n正态分布随机矩阵 %生成m×n正态分布随机矩阵
产生均值为0.6,方差为0.1的4阶矩阵 >> mu=0.6; sigma=0.1; >> x=mu+sqrt(sigma)*randn(4) x= 0.8311 0.7799 0.1335 1.0565 0.7827 0.5192 0.5260 0.4890 0.6127 0.4806 0.6375 0.7971 0.8141 0.5064 0.6996 0.8527

第2章 MATLAB矩阵及其运算

第2章  MATLAB矩阵及其运算
C= 1 2 3 4 5 6 7 8 9 1 3 5 4 6 8 7 9 11 注意行和列数
1 4 7 1 4 7
3 5 6 8 9 11 2 3 5 6 8 9
2.2.2 矩阵的拆分
1.矩阵元素的引用方式
1)通过下标引用矩阵的元素,例如
A=[1,2,3;4,5,6;7,8,9] A(3,2)=200 注意 :如果给出的下标大于矩阵的行数和列数,则 自动扩展原有矩阵,没赋值的元素为0。
元素由1,2,3,…,n2共n2个整数组成。MATLAB提供
了求魔方矩阵的函数magic(n),其功能是生成一个 n阶魔方阵。 (2) 范得蒙矩阵 (3) 希尔伯特矩阵 (4) 托普利兹矩阵 (5) 伴随矩阵
(6) 帕斯卡矩阵
练习
1.利用clear命令清除工作空间的变量(若工作 空间没有变量,可先任意新建一个); 2.按下列方式对变量赋值 A=[pi,2*pi;4*pi,0;10*pi,0.5*pi]; B=[1+2i,3-5i,5;4,6-2i,8;7,9+3i,11]; 3.求出2题中A的正弦函数并赋给变量C,求出 2题中B的实部和虚部分别赋给变量Br和Bi。 4.将3题中的变量C, Br和Bi保存下来,保存 数据的文件名自己选取(英文名)
1.变量命名
可以改变, 重新赋值
在MATLAB 中,变量名是以字母开头,后接字母、
数字或下划线的字符序列(不能包含空格和标点
符号),最多63个字符。在MATLAB中,变量名 区分字母的大小写。关键字和函数名不能作为变 量名。
2.赋值语句 (1) 变量=表达式 (2) 表达式
其中表达式是用运算符将有关运算量连接起来的
e或E表示 10为底的 指数
e3,2e3, 1e, 1e-2, 1E2, 1E-2i, 2E-1-i, .....

第2章 MATLAB矩阵及其运算 21 变量和数据操作 22

第2章 MATLAB矩阵及其运算 21 变量和数据操作 22

2.3
MATLAB运算
2.3.1算术运算 1.基本算术运算 MATLAB的基本算术运算有:+(加)、 -(减)、*(乘)、/(右除)、\(左除)、^(乘方)。 注意,运算是在矩阵意义下进行的,单个 数据的算术运算只是一种特例。

(1) 矩阵加减运算 A+B A-B 要求:维数相同,则A和B矩阵的相应元 素相加减
(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变 量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删 除,而空矩阵则存在于工作空间中,只是 维数为0。
2.2.3 特殊矩阵 1.通用的特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态 分布随机矩阵。

(2) 矩阵乘法 A)两个矩阵相乘 A*B 要求:A的列数和B的行数相等 B)矩阵的数乘 x*A %x与A的各个元素分别相 乘 C)点乘 A.*B 要求:维数相同的向量或矩阵,对应元素对应相乘 D)内积 dot(A,B);dot(A,B, dim) % A×B=ATB 要求:向量长度或矩阵维数相同(同为m x n维阵)。
E)叉积 cross(A,B);cross(A,B,dim) F)混合积 X=a.(b x c) G)卷积多项式乘法 w=conv(u,v) P=ploy2str(w,’s’) %将卷积w表示成s的多项式 H)解卷多项式除法 [q,r]=deconv(v,u) I)张量积 C=kron(A,B) %Amxn,Bpxq, 不同维矩阵的相乘
例2-2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑 器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘(设文 件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix, 即运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。

matlab第二章矩阵运算基础

matlab第二章矩阵运算基础
矩阵A的内容。
矩阵的表示方法
01
02
03
文字表示法
使用中括号[]将矩阵元素 括起来,元素之间用逗号 或空格分隔,行与行之间 用分号隔开。
符号表示法
使用符号“”将矩阵元素 括起来,例如 A=[abc;def;ghi]。
分块表示法
将一个大的矩阵分成若干 个小矩阵,每个小矩阵称 为该大矩阵的一个子块。
02
04
矩阵分解与线性方程组求 解
矩阵的LU分解
LU分解
LU分解是一种将一个矩阵 分解为一个下三角矩阵L和 一个上三角矩阵U的乘积 的方法。
算法步骤
将给定矩阵A进行LU分解, 得到L和U两个矩阵,满足 A=LU。
应用场景
LU分解在许多数值计算问 题中都有应用,如线性方 程组求解、矩阵求逆等。
矩阵的QR分解
例如,`E = rand(3,3)`创建一个3x3的随机矩阵,所有元素 都是0到1之间的随机数。
矩阵的输入与
使用键盘输入:在Matlab命令 窗口中,可以直接输入矩阵并按
Enter键。
使用文件输入:可以使用`load` 函数从文件中读取矩阵数据,例
如`load('filename.mat')`。
使用`disp`、`fprintf`等函数输 出矩阵:例如,`disp(A)`会显示
迭代法适用于系数矩阵不可逆或系 数矩阵为稀疏矩阵的情况。
05
矩阵的应用实例
在控制系统中的应用
线性系统建模
利用矩阵表示线性系统的状态方程、输出方程等, 便于分析和设计控制系统。
控制系统分析
通过矩阵运算,可以对控制系统进行稳定性分析、 时域和频域分析等。
控制算法实现
利用矩阵运算实现控制算法,如PID控制、状态反 馈控制等。

第2章2MATLAB矩阵及其运算

第2章2MATLAB矩阵及其运算

例:
>> a=[1 2 3;4 5 6; 7 8 9]
a=
123
456
789
>> a(:,2) ans =
2
>> a(2,:) ans =
456
5
8
>> a([1 2],:) ans =
123 456
>> a([1 end],:) ans =
123 789
>> a([1 3],:) ans =
123 789
【例2.13.1-2】关系运算运用之一:求近似极限,修补图形缺口。 >> t=-2*pi:pi/10:2*pi; y=sin(t)./t; tt=t+(t==0)*eps; yy=sin(tt)./tt; subplot(1,2,1),plot(t,y),axis([-7,7,-0.5,1.2]), xlabel('t'),ylabel('y'),title('残缺图形') subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2]) xlabel('t'),ylabel('yy'),title('正确图形') Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.)
1122
2.矩阵拆分 (1) 利用冒号表达式获得子矩阵 ① A(:,j)表示取A矩阵的第j列全部元素;A(i,:)
表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵 第i行、第j列的元素。

第二章 Matlab矩阵及其运算

第二章 Matlab矩阵及其运算

49
49
1
1
1
1
2.2.2 矩阵的拆分
1、矩阵元素
1)矩阵元素的序号(Index)——即相应元素在内存中的排列顺序 在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。
A=[1,2,3;4,5,6]; A(3) ans = 2
2)矩阵元素的下标(subscript)——是指行标和列标
2、内存变量文件
1)利用MAT文件可以把当前MATLAB工作空间中的一些有用变量
长久地保留下来,扩展名是.mat。
2)MAT文件的生成和装入由save和load命令来完成。
save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii]
其中: A、文件名可以带路径,但不需带扩展名.mat,命令隐含一定 对.mat文件进行操作。 B、变量名表中的变量个数不限,只要内存或文件中存在即可,变 量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。 C、-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二 进制格式处理。save命令中的-append选项控制将变量追加到 MAT文件中。
b. A+B和A-B中的A、B必须有相同的大小,除非其中有一个是标量, 标量可以和任意大小的矩阵相加减;
c. Mat lab中,+和-可以作为一元运算符使用,+A就是取A,-A则 是对A中所有的元素取相反数。
2、矩阵乘法 指令:A * B
假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A*B 为m×p矩阵。
3
4
5
A(:, 2:4)
——引用A的所有行,第2、3、4列的元素;

2 MATLAB矩阵及其运算

2  MATLAB矩阵及其运算

2 MATLAB矩阵及其运算矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。

下面重点介绍矩阵的生成、矩阵的基本运算和矩阵的数组运算。

2.1 变量和数据操作2.1.1 变量与赋值1.变量命名在MATLAB 6.5中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。

在MATLAB中,变量名区分字母的大小写。

2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。

例2-1 计算表达式的值,并显示计算结果。

在MATLAB命令窗口输入命令:x=1+2i;y=3-sqrt(17);z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))其中pi和i都是MATLAB预先定义的变量,分别代表代表圆周率π和虚数单位。

输出结果是:2.1.2 预定义变量在MA TLAB工作空间中,还驻留几个由系统本身定义的变量。

例如,用pi表示圆周率π的近似值,用i表示虚数单位。

预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。

2.1.3 内存变量的管理1.内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理。

在工作空间窗口中可以显示所有内存变量的属性。

当选中某些变量后,再单击Delete按钮,就能删除这些变量。

当选中某些变量后,再单击Open按钮,将进入变量编辑器。

通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。

clear命令用于删除MATLAB工作空间中的变量。

who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。

who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。

2.内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。

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

k=find(a) k= 33 74
2.矩阵寻址或者下标
[i,j,v]=find(a>0) i=3 j=7 v=1
If X is a logical expression, then v is a logical array. Output v contains the nonzero elements of the logical array obtained by evaluating the expression X.
1.矩阵的创建 • >> logspace(0,2,11)
%创建从100开始,到102结束,包含11个值的数组
ans = 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 100.0000
1.矩阵的创建
2.矩阵寻址或者下标
D= 1 2 3
>> D(2)
4 5 6
7 8 9
10 11 12
ans = 2 >> D(5) ans = 5
2.矩阵寻址或者下标
函数ind2sub 可以将一个单一索引值转换成 行列下标,则sub2ind可以将行列下标转换成单 一索引值。 >> sub2ind(size(D),2,4) ans = 11 >> [r , c] = ind2sub(size(D),10) r= 1 c= 4
2.矩阵寻址或者下标 利用下标修改矩阵元素,更是方便 例:a(2,3) = 15; a(2,1:3) = [5 10 15]; 这时a的第二行变成5 10 15, 其他行不变 也可利用end表示最后一个元素 a(2,1:end)表示矩阵的第二列
2.矩阵寻址或者下标
看几个简单的例子:
>> A = [1 2 3; 4 5 6; 7 8 9 ] A= 1 2 3 4 5 6 7 8 9 >> A ( 3 , 3 ) = 0 % set element in 3rd row, 3rd column to zero A= 1 2 3 4 5 6 7 8 0
矩阵下标
在Matlab中,我们可以通过下标来访 问矩阵元素。 矩阵下标相当重要,灵活,等同于c语 言的指针地位 例:b=a(1,2)+a(2,3) b=a(8)+a(4) 注意:matlab是按列存取的。
2.矩阵寻址或者下标 例如, >> x(3) % The third element of x ans = 0.6283 >> y(5) % The fifth element of y ans = 0.9511
3.1416
2.矩阵寻址或者下标 • 例子: • >> y(3:-1:1) %表示返回y的元素从3开始, 向下减1计数,到1结束。 • >> x(2:2:7) %表示返回x的元素从2开始, 以步长为2计数,到7结束。 • >> y([8 2 9 1]) % ????? • >> y([1 1 3 4 2 2 8 ]) % ?????
1.矩阵的创建
>> x=(0:0.1:1)*pi x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 >> x=linspace(0,pi,11) % linspace(first_value,last_value,number_of_value)) x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416
第二章 MATLAB矩阵及其运算
—MATLAB具有出色的矩阵运算能力, 能解决线性代数中的关于矩阵的一切运算。
目录
1. 简单矩阵的创建 2. 矩阵寻址或者下标
3. 几种典型矩阵
4. 矩阵运算
MATLAB矩阵简介
从结构上讲,矩阵(数组)是MATLAB数 据存储的基本单元 从运算角度讲,矩阵形式的数据有多种运
4.几种典型矩阵
下列命令用来创建 单位矩阵:
>> eye(4) ans = 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1
下列命令用来创建随机矩阵:
>> rand(3) ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 >> rand(1,5) ans = 0.9649 0.1576 0.9706 0.9572 >> b=eye(3) b= 1 0 0 0 1 0 0 0 1 >> rand(size(b)) ans = 0.8003 0.9157 0.6557 0.1419 0.7922 0.0357 0.4218 0.9595 0.8491
2.矩阵寻址或者下标
数组寻址 描述 A(r , c) 用所希望的行r和所希望的列c定义的索引向量来寻 址A的子数组 A(r , :) 用所希望的行r和所有的列所定义的索引向量来寻址 A的子数组 A(: , c) 用所有的行和所希望的列c定义的索引向量来寻址A 的子数组 A( : ) 以列向量的方式一次寻址A的所有元素,依列进行。 如果A(:)出现在等号的左侧,意味着用等号右侧的 元素来填充数组A,而不改变A的形状。 A( k ) 用单一索引向量k寻址A的子数组,就像A是列向量 A(:)一样
2.矩阵寻址或者下标
>> A = [1 2 3; 4 5 6; 7 8 9 ] ;%restore original data >> B= A (3:-1:1 , 1:3) B= 7 4 1 8 5 2 9 6 3
该语句通过将数组A的行按逆序排列,得到数组B。
2.矩阵寻址或者下标
>> C = [A B( : , [1 3] )] C= 1 2 3 7 9
2.矩阵寻址或者下标
• 如果想要访问一块数据, >> x(1:5) ans = 0 0.3142 0.6283 0.9425
>> x(7:end) ans = 1.8850 2.1991 2.5133 2.8274 关键字end表示x数组的最后一元素
1.2566
括号中“1:5”表示从1开始,然后加1计数直到5。
4
7
5
8
6
9
4
1
6
3
该语句通过将数组B的第一和第三列附加或连接在数组 A的右侧,生成数组C。
2.矩阵寻址或者下标 矩阵行列删除
利用空矩阵可从矩阵中删除指定的行或列。 如,要删除第二行 b(2, :)=[ ] 要删除第二列 b(:,2) = [ ] 注意:将矩阵某元素附空值与赋零值完全不同 b(1,2) = [ ]出错! b(1,2) = 0 可以
1.矩阵的创建
一维矩阵创建方法 x=[2 2*pi sqrt(2) 2-3j] X=first:last 意 义
创建包含任意元素的行向量x
创建行向量x,从first开始,步长为1, 到last结束。如果不能到last,则到小于 last的最大正数结束。 x=first:increment: 创建行向量x,从first开始,步长为 last increment,到last结束。如果不能到 last,则到小于last的最大正数结束。 X=linspace(first,la 创建均匀间隔的行向量x,从first开始, st,n) 到last结束。总共有n个元素。 X=logpace(first,la 创建均匀间隔的行向量x,从10first开始, st,n) 到10last结束。总共有n个元素。
2.矩阵寻址或者下标
>> A ( 2 , 6 ) = 1 % set element in 2rd row, 6th column to one A= 1 2 3 0 0 0 4 5 6 0 0 1 7 8 0 0 0 0 >> A( : , 4) = 4 % set element in 4th column to four A= 1 2 3 4 0 0 4 5 6 4 0 1 7 8 0 4 0 0
2.矩阵寻址或者下标
find函数
k=find(X)可在阵列X中找出非零元素下标 [i, j]=find(X)可在矩阵X中找出非零元素的 行列下标。 [i, j, v]=find(X)可得到非零值的列向量v.
2.矩阵寻址或者下标
a=zeros(5,20); a(3,7)=0.5; a(4,15)= -0.4; [i,j,v]=find(a) i=3 4 j=7 15 v=0.5000 -0.4000
4.几种典型矩阵 典型矩阵
>> ones(3) ans = 1 1 1 1 1 1 1 1 1 >> zeros(2,5) ans = 0 0 0 0 0 0 说明:
0 0
0 0
对于ones和zeros函数, 只有一个输入参数时,即 ones(n)或zeros(n), Matlab就生成一个nxn的全 1或者全0数组;当有两个 输入参数时,即ones(r,c) 或zeros(r,c), Matlab就分 别生成一个r行c列的全1或 者全0数组。
1.矩阵的创建
这样,x和y就成了一一对应的有序数列。由于这种有序性 的存在,我们就很自然地想到用下标来表示x和y中的一 个单独元素。如,x1表示x的第一个元素,y1表示y的第 一个元素,以此类推…… MATLAB的实现:
• • • • • • >> x= [0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] x= 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416 >> y=sin(x) y= 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 0.5878 0.3090 0.0000
相关文档
最新文档