Matlab实验2-矩阵的基本运算
MATLAB矩阵及运算
重点
y矩阵中每一列最大的值
y向量中最大的值
最大值的位置
最大值的位置
注意:输入矩阵类型不同, 则执行的操作不同。
2.1.4 函数
因为matlab函数太多,所以要养成使用help
命令,得到有关函数的具体用法:
例:help max
2.1表达式
表达式
(即语句):将变量、数值、函 数用操作符连接起来,就构成了表达式 。
应用:可以和其它语言程序进行数据通信。 举例:
通过MATLAB提供的函数产生矩阵
用内部函数可生成一些特殊矩阵 (函数见书上P50)
重点
通过MATLAB提供的函数产生矩阵
1、单位矩阵(
E方阵)和广义单位矩阵的
产生
重点
通过MATLAB提供的函数产生矩阵
2、随机数矩阵的产生
随机数的产生常常用在控制系统仿真以 及信号分析,是一个非常重要的手段。 MATLAB提供了很好的随机数产生函数: rand() randn()
A/ B A*B
1
A\B A
重点
1
*B
Matlab右除法表示形式:
C=A/B 或 C=A * i n v ( B )
Matlab左除法表示形式: C=A\B 或 C=i n v ( A ) * B
注意:只有行列式不为0的方阵才存在逆阵!!!
矩阵元素的右除、左除
a1 A a3 a2 a4
2)变量名由字母、数字和下划线构成。第一个 字母必须是英文字母。 3)有字符个数限制(版本5.0 :最多31个字符)
2.1.2 变量
MAT
重点
(注意大小写!)
i或j: 错误:5+j7
MATLAB中对矩阵的基本操作
MATLAB中对矩阵的基本操作在MATLAB中,可以对矩阵进行多种基本操作,包括创建矩阵、访问元素、改变矩阵的大小、插入和删除元素、矩阵的运算等。
以下是对这些操作的详细说明:1.创建矩阵:在MATLAB中,可以使用多种方式创建矩阵。
其中最常用的方式是使用方括号将元素排列成行或列,例如:```A=[1,2,3;4,5,6;7,8,9];```这将创建一个3x3的矩阵A,其元素为1到92.访问元素:可以使用括号和下标来访问矩阵中的元素。
下标从1开始计数。
例如,要访问矩阵A的第二行第三列的元素,可以使用以下代码:```A(2,3);```这将返回矩阵A的第二行第三列的元素。
3.改变矩阵的大小:可以使用函数如reshape和resize来改变矩阵的大小。
reshape函数可以将矩阵重新组织为不同的行和列数。
例如,以下代码使用reshape 将3x3的矩阵A重新组织为1x9的矩阵B:```B = reshape(A, 1, 9);```resize函数可以改变矩阵的大小,可以用来增加或减少矩阵的行和列数。
例如,以下代码将矩阵A的大小改变为2x6:```A = resize(A, 2, 6);```4.插入和删除元素:可以使用括号和下标来插入和删除矩阵中的元素。
例如,以下代码会在矩阵A的第二行的末尾插入一个元素10:```A(2, end+1) = 10;```同时,可以使用括号和下标来删除矩阵中的元素。
以下代码将删除矩阵A的第一行的第二个元素:```A(1,2)=[];```这将删除矩阵A的第一行的第二个元素。
5.矩阵的运算:-矩阵乘法:使用*符号进行矩阵乘法运算。
例如,以下代码将矩阵A 与矩阵B相乘:```C=A*B;```-矩阵加法和减法:使用+和-符号进行矩阵加法和减法运算。
例如,以下代码将矩阵A和矩阵B相加得到矩阵C:```C=A+B;```-矩阵转置:使用'符号进行矩阵的转置操作。
例如,以下代码将矩阵A转置:```B=A';```-矩阵相乘:使用.*符号进行矩阵的元素级相乘运算。
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实验二
北京工业大学Matlab实验报告**: ***学号: ************: **实验二、Matlab 的基本计算(一)实验目的1.掌握建立矩阵的方法。
2.掌握Matlab 各种表达式的书写规则以及常用函数的使用。
3.能用Matlab 进行基本的数组、矩阵运算。
4.掌握矩阵分析的方法以及能用矩阵运算或求逆法解线性方程组。
5.掌握Matlab 中的关系运算与逻辑运算。
(二)实验环境1.计算机2.MATLAB7.0集成环境(三)实验内容及要求1、熟练操作MATLAB7.0运行环境;2、自主编写程序,必要时参考相关资料;3、实验前应写出程序大致框架或完整的程序代码;4、完成实验报告。
(四)实验程序设计1.利用diag 等函数产生下列矩阵。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=032570800a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=804050702b2.利用reshape 函数将1题中的a 和b 变换成行向量。
3.产生一个均匀分布在(-5,5)之间的随机矩阵(10×2),要求精确到小数点后一位。
4.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=731203321B求下列表达式的值:(1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵)(2) B A K *21=和B A K *.22=(3) 331^A K =和3.32^A K =(4) B A K /41=和A B K \42=(5) ],[51B A K =和]2:);],3,1([[52^B A K = 5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.03216/15/14/15/14/13/14/13/12/1x x x(1)求方程的解(矩阵除法和求逆法)(2)将方程右边向量元素3b 改为0.53,再求解,并比较3b 的变化和解的相对变化。
Matlab矩阵运算基础数值运算
data =
1.1000 3.0000 4.0000
2.3000 2.0000 1.0000
.
13
3.2 矩阵运算
主要介绍矩阵的算术运算、关系运算、逻辑 运算和常用的有关矩阵的其他运算(矩阵的 逆,矩阵的秩、矩阵的分解等)。
.
14
3.2.1 矩阵的算术运算
1、矩阵的加(+)减(-)运算:
A±B 矩阵A和矩阵B的和与差,即矩阵相应 位置的元素相加、减。
>> A=magic(3)
D=
A= 816
0.5492 0.2421 -0.6520 0.9075
357
1.0047 -0.4941
492
>> C*D
>> B=inv(A)
ans =
B=
1.0000 0.0000
0.1472 -0.1444 0.0639
0.0000 1.0000
-0.0611 0.0222 0.1056
~ A 对单个矩阵或标量进行取反运算,结果是0-1矩阵。
.
28
3.2.3 矩阵的逻辑运算
例3-11 1 0 3
1 2 0
A2.6 1 2, B0 5 0
0 3 1
1 0 1
计算 A&B, A|B, ~A Nhomakorabea.
29
3.2.4 矩阵函数
1、矩阵的共轭
MATLAB中求矩阵的共轭矩阵的函数是conj,其 调用格式为:
除或浮点溢出都不按错误处理,只是给出警告信息,同时用“Inf”
标记。
.
20
3.2.1 矩阵的算术运算
4、 矩阵的幂运算:^ A^B A的B次方。
矩阵运算软件实验报告
一、实验目的1. 熟悉矩阵运算软件的基本功能和使用方法。
2. 掌握矩阵的创建、编辑、保存、调用等操作。
3. 熟练运用矩阵的基本运算,如加减乘除、求逆、求行列式、求秩、求迹等。
4. 通过实际操作,提高对矩阵运算的理解和应用能力。
二、实验环境1. 软件名称:MATLAB2. 操作系统:Windows 103. 编程环境:MATLAB R2020b三、实验内容1. 矩阵的创建与编辑(1)创建一个2x3的矩阵A:```A = [1 2 3; 4 5 6]```(2)创建一个3x3的矩阵B,并将元素设置为随机数:```B = randn(3);```(3)编辑矩阵A,将第2行第3列的元素修改为10:```A(2,3) = 10;```2. 矩阵的保存与调用(1)将矩阵A保存为“matrixA.mat”:```save matrixA.mat A```(2)调用保存的矩阵A:```load matrixA.mat```3. 矩阵的基本运算(1)矩阵的加减运算:```C = A + B; % 矩阵A与B相加D = A - B; % 矩阵A与B相减```(2)矩阵的乘除运算:```E = A B; % 矩阵A与B相乘F = A / B; % 矩阵A与B相除(元素-wise)```(3)求矩阵的逆:```G = inv(A); % 求矩阵A的逆```(4)求矩阵的行列式:```detA = det(A); % 求矩阵A的行列式```(5)求矩阵的秩:```rankA = rank(A); % 求矩阵A的秩```(6)求矩阵的迹:```traceA = trace(A); % 求矩阵A的迹```4. 矩阵的应用(1)解线性方程组:```x = A\b; % 解线性方程组Ax = b```(2)矩阵的特征值与特征向量:```[V, D] = eig(A); % 求矩阵A的特征值和特征向量```四、实验结果与分析1. 通过实验,成功创建了多个矩阵,并掌握了矩阵的保存与调用方法。
第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矩阵运算实验报告Matlab矩阵运算实验报告一、引言矩阵运算是数学和工程领域中的重要概念之一,它在各个领域中都有广泛的应用。
Matlab作为一种强大的数学软件工具,提供了丰富的矩阵运算功能,可以帮助我们进行高效的数值计算和数据处理。
本实验报告将介绍Matlab中的矩阵运算功能,并通过实例展示其在实际问题中的应用。
二、矩阵运算的基本概念矩阵是由若干个数按照行和列排列形成的一个矩形阵列,它是线性代数中的基本工具。
在Matlab中,矩阵可以通过直接输入数值或使用内置函数生成。
矩阵运算包括加法、减法、乘法、转置等操作,这些操作可以对矩阵的每个元素进行运算,也可以对整个矩阵进行运算。
三、矩阵运算的实例分析1. 矩阵的创建与赋值在Matlab中,可以使用以下命令创建一个矩阵,并对其进行赋值操作:A = [1, 2, 3; 4, 5, 6; 7, 8, 9];这样就创建了一个3行3列的矩阵A,并对其进行了赋值。
可以通过输入A来查看矩阵A的内容。
2. 矩阵的加法与减法矩阵的加法和减法是按照对应元素进行运算的。
例如,对于两个3行3列的矩阵A和B,可以使用以下命令进行加法运算:C = A + B;同样地,可以使用以下命令进行减法运算:D = A - B;这样就得到了矩阵C和D。
3. 矩阵的乘法矩阵的乘法是按照行乘以列的方式进行的。
例如,对于一个3行2列的矩阵A和一个2行4列的矩阵B,可以使用以下命令进行乘法运算:C = A * B;这样就得到了一个3行4列的矩阵C。
4. 矩阵的转置矩阵的转置是将矩阵的行和列进行交换的操作。
例如,对于一个3行2列的矩阵A,可以使用以下命令进行转置操作:B = A';这样就得到了一个2行3列的矩阵B。
四、矩阵运算的应用实例矩阵运算在实际问题中有着广泛的应用。
以下是一个简单的实例,通过矩阵运算来解决线性方程组的问题。
假设有一个线性方程组:2x + y = 4x + 3y = 6可以将其表示为矩阵形式:A = [2, 1; 1, 3];B = [4; 6];通过矩阵运算可以求解出未知数x和y的值:X = A \ B;这样就得到了未知数x和y的值。
实验二matlab矩阵分析与处理
《MATLAB及应用A》第二次上机作业一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。
求它在第10次落下时共经过多少米?第10次反弹多高?MATLAB源程序:MATLAB运行结果:二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB中复制)。
MATLAB源程序:x=linspace(0,6);y1=sin(2*x);y2=sin(x.^2);y3=(sin(x)).^2;各条命令语句的功能如下:y1、y2、y3的值分别为:三、教材第55页习题三,第3题。
MATLAB源程序:MATLAB运行结果:四、选择题(1) i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后,a, b, c的值分别是多少?()(A) a=4, b=4, c=2.0000i(B) a=4, b=2.0000i, c=2.0000i(C) a=2.0000i, b=4, c=2.0000i(D) a=2.0000i, b=2.0000i, c=2.0000i(2) 求解方程x4-4x3+12x-9 = 0 的所有解,其结果为()(A) 1.0000, 3.0000, 1.7321, -1.7321(B) 1.0000, 3.0000, 1.7321i, -1.7321i(C) 1.0000i, 3.0000i, 1.7321, -1.7321(D) -3.000-0i, 3.0000i, 1.7321, -1.7321五、求[100,1000]之间的全部素数(选做)。
MATLAB源程序: MATLAB运行结果:一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。
求它在第10次落下时共经过多少米?第10次反弹多高?MATLAB源程序:>> a=(0:-1:-9) %产生一个行向量aa =0 -1 -2 -3 -4 -5 -6 -7 -8 -9>> b=pow2(a) %对行向量a中的每一个元素分别求幂函数b =1.0000 0.5000 0.2500 0.1250 0.0625 0.0313 0.0156 0.007 8 0.0039 0.0020>> h=100*b %对行向量b中的每一个元素分别乘以100h =100.0000 50.0000 25.0000 12.5000 6.2500 3.1250 1.5625 0. 7813 0.3906 0.1953>> s1=sum(h) %对行向量h中的元素求和s1 =199.8047>> s=s1*2-100 %求出第10次落下时经过的高度s =299.6094>> h10=h(10)/2 %求出第10次反弹的高度h10 =0.0977二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB 中复制)。
Matlab 矩阵的运算
(1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和 A-B实现矩阵的加减运算。 运算规则是:若A和B矩阵的维数相同, 则可以执行矩阵的加减运算,A和B矩阵的相 应元素相加减。如果A与B的维数不相同,则 MATLAB将给出错误信息,提示用户两个矩 阵的维数不匹配。 (2) 矩阵乘法 假定有两个矩阵A和B,若A为m×n矩阵, B为n×p矩阵,则C=A*B为m×p矩阵。
关系运算符的运算法则为: (1) 当两个比较量是标量时,直接比较两 数的大小。若关系成立,关系表达式结果为1, 否则为0。 (2) 当参与比较的量是两个维数相同的矩 阵时,比较是对两矩阵相同位置的元素按标 量关系运算规则逐个进行,并给出元素比较 结果。最终的关系运算的结果是一个维数与 原矩阵相同的矩阵,它的元素由0或1组成。
例3-3 先建立 5×5矩阵A,然后将A的第一 行元素乘以1,第二行乘以2,…,第五行乘 以5。 A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22; 10,12,19,21,3;11,18,25,2,19]; D=diag(1:5); D*A %用D左乘A,对A的每行 乘以一个指定常数
3.3 字符串
在MATLAB中,字符串是用单撇号(‘)括 起来的字符序列。 MATLAB 将字符串当作一个行向量, 每个元素对应一个字符,其标识方法和数值 向量相同。也可以建立多行字符串矩阵。
字符串是以ASCII码形式存储的。abs和 double函数都可以用来获取字符串矩阵所对 应的ASCII码数值矩阵。 相反,char函数可以把ASCII码矩阵转换 为字符串矩阵。
3.2.4 方阵的行列式
把一个方阵看作一个行列式,并对其按 行列式的规则求值,这个值就称为矩阵所对 应的行列式的值。 在MATLAB中,求方阵A所对应的行列 式的值的函数是det(A)。
实验二MATLAB的矩阵操作_参考答案
1
5
>> A(k)
ans =
23
10
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角 子矩阵构成矩阵D,B与C的乘积构成矩阵E.
>> B=A([1,2,3],:)
B =
23.0000 10.0000 -0.7780 0
41.0000 -45.0000 65.0000 5.0000
32.0000 5.0000 0 32.0000
y =
-128.4271
2.已知 ,
求下列表达式的值:
(1) , (其中I为单位矩阵)
A=[-1,5,-4;0,7,8;3,61,7]
B=[8,3,-1;2,5,3;-3,2,0]
>> A+6*B
ans =
47 23 -10
12 37 26
-15 73 7
&
ans =
-1.2768 -0.4743 0.2411
2.1229 1.3173 -0.2924
3.已知
完成下列操作
(1)输出A在[10,25]范围内的全部元素
A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]
>> k=find(A>=10&A<=25)
(2)
(3)
2.已知 ,
求下列表达式的值:
(1) , (其中I为单位矩阵)
(2)A*B、A.*B和B*A
(3)A/B及B/A
3.已知
完成下列操作
(1)输出A在[10,25]范围内的全部元素
(2)取出A前3行构成矩阵B,前两列构成矩阵C,右下角 子矩阵构成矩阵D,B与C的乘积构成矩阵E.
Matlab 矩阵运算
Matlab 矩阵运算说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。
Matlab的运算是在矩阵意义下进行的,这里所提到的是狭义上的矩阵,即通常意义上的矩阵。
目录第一部分:矩阵基本知识一、矩阵的创建1.直接输入法2.利用Matlab函数创建矩阵3.利用文件创建矩阵二、矩阵的拆分1.矩阵元素2.矩阵拆分3.特殊矩阵三、矩阵的运算1.算术运算2.关系运算3.逻辑运算四、矩阵分析1.对角阵2.三角阵3.矩阵的转置与旋转4.矩阵的翻转5.矩阵的逆与伪逆6.方阵的行列式7.矩阵的秩与迹8.向量和矩阵的范数9.矩阵的特征值与特征向量五、字符串六、其他第二部分矩阵的应用一、稀疏矩阵1.稀疏矩阵的创建2.稀疏矩阵的运算3.其他二、有限域中的矩阵内容第一部分:矩阵基本知识(只作基本介绍,详细说明请参考Matlab帮助文档)矩阵是进行数据处理和运算的基本元素。
在MATLAB中a、通常意义上的数量(标量)可看成是”1*1″的矩阵;b、n维矢量可看成是”n*1″的矩阵;c、多项式可由它的系数矩阵完全确定。
一、矩阵的创建在MATLAB中创建矩阵有以下规则:a、矩阵元素必须在”[ ]“内;b、矩阵的同行元素之间用空格(或”,”)隔开;c、矩阵的行与行之间用”;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。
下面介绍四种矩阵的创建方法:1、直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。
建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。
还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b 是生成向量的第一个和最后一个元素,n是元素总数。
MATLAB基础(矩阵运算和矩阵操作)2
223445.68
数学运算符号及标点符号
+ — * .* / ./ ^ 减法运算 乘法运算 点乘运算 除法运算 点除运算 乘幂运算
加法运算,适用于两个数或两个同阶矩阵相加
(1)MATLAB的每条命令后,若为逗号或无标点符号, .^ 点乘幂运算 则显示命令的结果;若命令后为分号,则禁止显示结果. \ 后面所有文字为注释. (2)“%” 反斜杠表示左除. 36 (3) “...”表示续行.
10
命令窗口
11
工作间
12
当前目录
13
历史命令
14
设置路径搜索 当前目录
15
进入搜索对话框
16
设置搜索路径对话框
17
18
Editpath or pathtool
20
‘帮助’的使用
help 命令:已知命令 lookfor命令:知道命令的关键词 MATLAB Help:命令查找,索引,说明书 Demo
2.2345e+005
>> format rat >> 223445.6778987654
>> format bank >> 223445.6778987654
ans =
ans =
670337/3 >> format long e >> 223445.6778987654 ans = 2.234456778987654e+005
39
clear命令用于删除MATLAB工作空间中的变 量。 who和whos这两个命令用于显示在MATLAB工 作空间中已经驻留的变量名清单。 who命令只显示出驻留变量的名称,whos在给 出变量名的同时,还给出它们的大小、所占 字节数及数据类型等信息。
MATLAB实验报告
实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量矩阵数组的生成及基本运算(区分数组运算和矩阵预算)、常用的数学函数。
了解字符串的操作。
二、实验内容(1)向量的生成和运算。
(2)矩阵的创建、引用和运算。
(3)多维数组的创建和运算。
(4)字符创的操作。
三、实验步骤1.向量的生成和运算1)向量的生成<1>、直接输入法<2> 冒号表达式法<3> 函数法:Linspace()是线性等分函数,logspace()是对数等分函数。
2)向量的运算1>维数相同的行、列向量之间可以相加减,标量可以与向量直接相乘除。
2>向量的点积与叉积运算E1和E2虽然表达式相同,但E1是标量,E2是矩阵。
2.矩阵的创建、引用和运算1)矩阵的创建和引用矩阵是由m*n元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。
1>直接输入法:2>抽取法:包括单下标抽取和全下表抽取两种方式,且两种方式抽取的元素都必须以小括号括起来。
3>函数法:利用ones(m;n)创建全1矩阵,zeros()创建全0矩阵,eyes()创建单位矩阵等等。
4>拼接法:纵向拼接横向拼接5>利用拼接函数cat()repmat()和变形函数reshape()>> A1=[1 2 3;9 8 7 ;4 5 6];A2=A1.';>> cat(1,A1,A2) 沿行向拼接ans =1 2 39 8 74 5 61 9 42 8 53 7 6>> cat(2,A1,A2) 沿列向拼接ans =1 2 3 1 9 49 8 7 2 8 54 5 6 3 7 6>> repmat(A1,2,2)ans =1 2 3 1 2 39 8 7 9 8 74 5 6 4 5 61 2 3 1 2 39 8 7 9 8 74 5 6 4 5 6> A=linspace(2,18,9)A =2 4 6 8 10 12 14 16 18 >> reshape(A,3,3)ans =2 8 144 10 166 12 182)矩阵的运算练习(1)用矩阵除法求下列方程组的解x=[x1;x2;x3]>> A=[6 3 4;-2 5 7;8 -1 -3];B=[3;-4;-7];X=A\BX =1.0200-14.00009.7200(2)求矩阵的秩A=[6 3 4;-2 5 7;8 -1 -3];>> rank(A)ans =3[X,lamda]=eig(A)X =0.8013 -0.1094 -0.16060.3638 -0.6564 0.86690.4749 0.7464 -0.4719lamda =9.7326 0 00 -3.2928 00 0 1.5602(3)矩阵的开方>> B=sqrtm(A)B =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 +2.3845i (4)矩阵的指数与对数:> C=expm(A)C =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745>> logm(C)ans =6.0000 3.0000 4.0000-2.0000 5.0000 7.00008.0000 -1.0000 -3.0000(6)矩阵的转置D=A'D =6 -2 83 5 -14 7 -3(7)矩阵的提取与翻转:通过各种特定函数如triu(A)、tril(A),diag(A)、flipud (A)、fliplr(A)等等。
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
MATLAB中的矩阵运算
哈 工 程 大 学 数 值 计 算 软 件
●randn生成正态分布的随机阵 生成正态分布的随机阵 randn(n)生成 ×n的正态随机阵; 生成n× 的正态随机阵 的正态随机阵; 生成 randn(m,n),randn([m,n])生成 ×n的正态随机阵; 生成m× 的正态随机阵 的正态随机阵; 生成 randn(size(A))生成与矩阵 大小相同的正态随机阵。 生成与矩阵A大小相同的正态随机阵 生成与矩阵 大小相同的正态随机阵。 (5)其它基本运算 左右翻转; 上下翻转; ●fliplr(A) 将A左右翻转;●flipud(A) 将A上下翻转; 左右翻转 上下翻转 旋转90度 返回A ● rot90(A) 将 A旋转 度 。 ● tril(A)返回 A 的下三角部分 ; 旋转 返回 的下三角部分; tril(A,k)返回A第K 条对角线以下部分,K=0为主对角线, 返回A 条对角线以下部分,K=0为主对角线, 返回 K>0为主对角线以上,K<0为主对角线以下。 K>0为主对角线以上,K<0为主对角线以下。 返回A ●triu(A), triu(A,K)返回A的上三角部分,其它同上。 返回 的上三角部分,其它同上。 返回以向量v为主对角线的矩阵 ●diag(v)返回以向量 为主对角线的矩阵; 返回以向量 为主对角线的矩阵; diag(v,k) 若 v 是 n 个 元 素 的 向 量 , 则 它 返 回 一 个 大 小 为 n+abs(k)方阵,向量 位于第 条对角线上。K=0代表主对角线 方阵, 位于第k条对角线上 方阵 向量v位于第 条对角线上。 代表主对角线 为主对角线以上, 为主对角线以下。 , k>0为主对角线以上,k<0为主对角线以下。 diag(A)以向量 为主对角线以上 为主对角线以下 以向量 形式, 返回A 的主对角线元素; 对于矩阵A 形式 , 返回 A 的主对角线元素 ; diag(A,k)对于矩阵 A , 返回 对于矩阵 由第k条对角线构成的列向量 条对角线构成的列向量。 由第 条对角线构成的列向量。
MATLAB的矩阵运算
MATLAB的矩阵运算阅读⽬录 MATLAB是基于矩阵和数组计算的,可以直接对矩阵和数组进⾏整体的操作,MATLAB有三种矩阵运算类型:矩阵的代数运算、矩阵的关系运算和矩阵的逻辑运算。
其中,矩阵的代数运算应⽤最⼴泛。
本⽂主要讲述矩阵的基本操作,涉及矩阵的创建、矩阵的代数运算、关系运算和逻辑运算等基本知识。
矩阵的创建直接输⼊法创建矩阵% 1. 直接输⼊法创建矩阵>> A = [1,2,3; 4,5,6; 7,8,9]A =1 2 34 5 67 8 9函数法创建矩阵简单矩阵% 2. 函数法创建矩阵>> zeros(3)% ⽣成3x3的全零矩阵ans =0 0 00 0 00 0 0>> zeros(3,2)% ⽣成3x2的全零矩阵ans =0 00 00 0>> eye(3)% ⽣成单位矩阵ans =1 0 00 1 00 0 1>> ones(3)% ⽣成全1矩阵ans =1 1 11 1 11 1 1>> magic(3)% ⽣成3x3的魔⽅阵ans =8 1 63 5 74 9 2>> diag(1:3)% 对⾓矩阵ans =1 0 00 2 00 0 3>> diag(1:5,1)% 对⾓线向上移1位矩阵ans =0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5 0 0 0 0 0 0 >> diag(1:5,-1)% 对⾓线向下移1位矩阵ans =0 0 0 0 0 01 0 0 0 0 0 02 0 0 0 0 0 03 0 0 0 0 0 04 0 0 0 0 0 05 0 >> triu(ones(3,3))% 上三⾓矩阵ans =1 1 10 1 10 0 1>> tril(ones(3,3))% 下三⾓矩阵ans =1 0 01 1 01 1 1随机矩阵>> rand(3)% ⽣成随机矩阵ans =0.2898 0.8637 0.05620.4357 0.8921 0.14580.3234 0.0167 0.7216>> rand('state',0); % 设定种⼦数,产⽣特定种⼦数下相同的随机数>> rand(3)ans =0.9501 0.4860 0.45650.2311 0.8913 0.01850.6068 0.7621 0.8214>> a = 1; b = 100;>> x = a + (b-a)* rand(3)% 产⽣区间(1,100)内的随机数x =38.2127 20.7575 91.113389.9610 31.0064 53.004043.4711 54.2917 31.3762>> a = 1; b = 100;>> a + fix(b * rand(1,50))% 产⽣50个[1,100]内的随机正整数ans =列 1 ⾄ 154 72 77 6 63 27 32 53 41 90 58 57 40 70 57列 16 ⾄ 3035 60 28 5 84 11 73 45 100 57 47 42 22 24 32列 31 ⾄ 4587 26 97 31 38 35 71 62 76 80 22 90 90 94 28列 46 ⾄ 5048 26 37 53 39相似函数扩展>> randn(3)% ⽣成均值为0,⽅差为1的正太分布随机数矩阵ans =-0.4326 0.2877 1.1892-1.6656 -1.1465 -0.03760.1253 1.1909 0.3273>> randperm(10)% ⽣成1-10之间随机分布10个正整数ans =4 9 10 25 8 1 3 7 6% 多项式x^3 - 7x + 6 的伴随矩阵>> u = [1,0,-7,6];>> A = compan(u)% ⽣成伴随矩阵A =0 7 -61 0 00 1 0>> eig(A) % 此处eig()函数⽤于求特征值% 利⽤伴随矩阵求得⽅程的根ans =-3.00002.00001.0000矩阵的运算矩阵的代数运算矩阵的算术运算>> A = [1,1;2,2];>> B = [1,1;2,2];>> AA =1 12 2>> BB =1 12 2>> A + Bans =2 24 4>> B-Aans =0 00 0>> A * Bans =3 36 6>> A^2ans =3 36 6>> A^3ans =9 918 18矩阵的运算函数>> C = magic(3)C =8 1 63 5 74 9 2>> size(C)ans =3 3>> length(C)ans =3>> sum(C)ans =15 15 15>> max(C)ans =8 9 7>> C'ans =8 3 41 5 96 7 2>> inv(C)ans =0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.1028矩阵的元素群运算元素群运算,是指矩阵中的所有元素按单个元素进⾏运算,也即是对应位置进⾏运算。
第2章 MATLAB矩阵及其运算
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, .....
第二章 matlab矩阵及其运算
预定义变量有特定的含义,在使用时,应尽量避免对这些变量重 新赋值。
Xiamen University
Matlab and Engineering Calculation
内存变量的管理
1.指令操作法
who:列出工作内存中的变量名 whos:列出工作内存中的变量细节 clear:
单位矩阵
例2-3 分别建立3×3、3×2和与矩阵A同样大小的零矩阵。
Xiamen University
Matlab and Engineering Calculation
numbers whose elements are uniformly distributed in the interval (0,1). 输出0-1之间的随机数矩阵。
Xiamen University
Matlab and Engineering Calculation
(3) 希尔伯特矩阵
hilb(N) is the N by N matrix with elements 1/(i+j-1), which is a famous example of a badly conditioned matrix.
2. 现场菜单操作法 3. 内存变量文件(.mat) (保存工作区中的变量)
save [文件名] [变量名表] [-append][-ascii]把内存变量存入磁盘 load [文件名] [变量名表] [-ascii]从磁盘中调入数据变量 help save help load
Xiamen University
Xiamen University
Matlab and Engineering Calculation
matlab中的矩阵的基本运算命令
S = sparse(i,j,s,m,n) %生成一个m×n的稀疏矩阵,(i,j)对应位置元素为si,m = max(i)且n =max(j)。
若系数矩阵的秩r<n,则可能有无穷解;
线性方程组的无穷解 = 对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求法属于解的第一类问题,通解部分属第二类问题。
1.4.1 求线性方程组的唯一解或特解(第一类问题)
这类问题的求法分为两类:一类主要用于解低阶稠密矩阵 —— 直接法;另一类是解大型稀疏矩阵 —— 迭代法。
函数 spconvert
格式 U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U
U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。
3.矩阵的变维
矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。
1.1 矩阵的表示 单位矩阵eye(m,n)
1.2 矩阵运算
1.2.14 特殊运算
1.矩阵对角线元素的抽取
函数 diag
格式 X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。
1.3.6 特征值分解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二、矩阵的基本运算一、 问题已知矩阵A 、B 、b 如下:⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡-------------=031948118763812654286174116470561091143A ⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡------=503642237253619129113281510551201187851697236421B …[]1187531=b应用Matlab 软件进行矩阵输入及各种基本运算。
二、 实验目的:熟悉Matlab 软件中的关于矩阵运算的各种命令三、 预备知识1、 、2、 线性代数中的矩阵运算。
3、 本实验所用的Matlab 命令提示:(1)、矩阵输入格式:A =[a 11, a 12; a 21, a 22];b =初始值:步长:终值;(2)、求A 的转置:A';(3)、求A 加B :A +B ;(4)、求A 减B :A -B ;(5)、求数k 乘以A :k*A ;(6)、求A 乘以B :A*B ;(7)、求A 的行列式:det (A );(8)、求A 的秩:rank (A );…(9)、求A 的逆:inv (A )或(A )-1;(10)、B 右乘A 的逆:B/A ;(11)、B 左乘A 的逆:A \B ;(12)、求A 的特征值:eig (A );(13)、求A 的特征向量矩阵X 及对角阵D :[X ,D ]=eig (A );((14)、求方阵A 的n 次幂:A ^n ;(15)、A与B的对应元素相乘:A.*B;(16)、存储工作空间变量:save '文件名' '变量名';(17)、列出工作空间的所有变量:whos;四、《五、实验内容与要求1、输入矩阵A,B,b;>> A=[3,4,-1,1,-9,10;6,5,0,7,4,-16;1,-4,7,-1,6,-8;2,-4,5,-6,12,-8;-3,6,-7,8,-1,1;8,-4,9,1,3,0] B=[1 2 4 6 -3 2;7 9 16 -5 8 -7;8 11 20 1 5 5;10 15 28 13 -1 9;12 19 36 25 -7 23;2 4 6 -3 0 5] b=[1,3,5,7,8,11]|A =3 4 -1 1 -9 106 5 07 4 -161 -4 7 -1 6 -82 -4 5 -6 12 -8^-3 6 -7 8 -1 18 -4 9 1 3 0B =1 2 4 6 -3 27 9 16 -5 8 -7^8 11 20 1 5 510 15 28 13 -1 912 19 36 25 -7 232 4 6 -3 0 5b =)1 3 5 7 8 112、作X21=A'、X22=A+B、X23=A-B、X24=AB;>> X21=A'X22=A+BX23=A-B%X24=A*BX21 =3 6 1 2 -3 84 5 -4 -4 6 -4-1 0 7 5 -7 9;1 7 -1 -6 8 1-9 4 6 12 -1 310 -16 -8 -8 1 0X22 =4 6 3 7 -12 12(13 14 16 2 12 -239 7 27 0 11 -312 11 33 7 11 19 25 29 33 -8 2410 0 15 -2 3 5<X23 =2 2 -5 -5 -6 8-1 -4 -16 12 -4 -9-7 -15 -13 -2 1 -13-8 -19 -23 -19 13 -17{-15 -13 -43 -17 6 -226 -8 3 4 3 -5X24 =-55 -85 -180 -245 80 -175127 174 348 250 -13 52|75 110 220 194 -41 15482 129 260 283 -91 23953 76 138 21 21 -2998 151 284 165 -33 1673、作X31=|A|、X32=|B|;#>> X31=det(A)X32=det(B)X31 =X32 ='4、作X41=R(A)、X42=R(B);>> X41=rank(A)X42=rank(B)X41 =》6X42 =45、作X5=A-1;>> X5=eye(6)/A【X5 =`>> inv(A)X5 =~6、—7、求满足矩阵方程XA=C的解矩阵X6,其中C为A的第i列乘以列标i所得矩阵;>> C=A.*[1,2,3,4,5,6;1,2,3,4,5,6;1,2,3,4,5,6;1,2,3,4,5,6;1,2,3,4,5,6;1,2,3,4,5,6]X6=C/AC =(3 8 -34 -45 606 10 0 28 20 -961 -8 21 -4 30 -482 -8 15 -24 60 -48-3 12 -21 32 -5 6)8 -8 27 4 15 0X6 =—8、求满足方程AX=b的解向量X7;>> X7=A\b'|X7 =—9、作X6的特性向量X8、X6的特征向量组X及对角阵D;>> X8=eig(X6)X8 =—、>> [X,D]=eig(X6)X =(D ={0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0(0 0 0 0 010、作X9=B2 (A-1)2;>> X9=B^2*(inv(A))^2X9 =%11、{12、创建从2开始公差为4的等差数列前15项构成的行向量X10。
>> X10=2:4:60X10 =2 6 10 14 18 22 26 30 34 38 42 46 50 54 5813、将本实验中的矩阵A与B的对应元素相乘X11、对应元素相除X12并观察分母为零时的结果;:>> X11=A.*BX11 =3 8 -4 6 27 2042 45 0 -35 32 1128 -44 140 -1 30 -40、20 -60 140 -78 -12 -72-36 114 -252 200 7 2316 -16 54 -3 0 0>> X12=A./BX12 =<[Inf 0>> det(B)X12 =14、求b每个元素自身次幂所得的行向量X13。
|>> X13=b.^bX13 =+011 *15、产生一长度为20的正态分布的随机向量X14【>> X14=randn(1,20)X14 =Columns 1 through 11Columns 12 through 20、1.求X14的最大值及其在X14中的位置。
>> [C,I] = max(X14)C =;I =92.将X14排序并给出排序后各元素在X14中的位置>> [B,IX] = sort(X14)B =(Columns 1 through 10Columns 11 through 20IX =《Columns 1 through 173 11 6 7 16 17 145 8 1 15 13 4 19 20 18 2Columns 18 through 2010 12 93.将X14变形为5行4列的矩阵X15,再将X15实行左右翻转并逆时针旋转90o。
>> X15=reshape(X14,5,4)X15 =>> X15=rot90(fliplr(X15))X15 =16、列出本实验中的所有变量。
>> whosName Size Bytes Class AttributesA 6x6 288 doubleB 1x20 160 doubleC 1x1 8 doubleD 6x6 288 doubleI 1x1 8 doubleIX 1x20 160 doubleX 6x6 288 doubleX10 1x15 120 doubleX11 6x6 288 doubleX12 6x6 288 doubleX13 1x6 48 doubleX14 1x20 160 doubleX15 4x5 160 doubleX21 6x6 288 doubleX22 6x6 288 doubleX23 6x6 288 doubleX24 6x6 288 doubleX31 1x1 8 doubleX32 1x1 8 doubleX41 1x1 8 doubleX42 1x1 8 doubleX5 6x6 288 doubleX6 6x6 288 doubleX7 6x1 48 doubleX8 6x1 48 doubleX9 6x6 288 double b 1x6 48 double。