实验目的
1?掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
?学习矩阵和数组的加减运算与乘法。
3?掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。
预备知识
1?常用的产生特殊矩阵的函数
?eye(m, n) 单位阵
?rand ( m,n) 随机矩阵
?randn( m, n) 正态分布的随机矩阵
?zeros(m, n) 零矩阵
?On es(m, n) 全部元素都为1的矩阵
?ComPan(A) 矩阵A的伴随矩阵
?bankel(m,n) n 维 Hankel 矩阵
?invhilb(n) n 维逆 HiIbert 矩阵
?magic(n) n 维 MagiC 矩阵
?toeplitz(m, n) Toeplitz 矩阵
?Wilki nso n(n) n 维Wilk in son特征值测试矩阵
?handamard(n) n 维 Handamard矩阵
?hilb(n) n 维 HiIbert 矩阵
?kro n(A,B) Kron ecker 张量积
?PaSCal(n) n 维 PaSCaI 矩阵
?Vander(A) 由矩阵 A 产生 Vandermonde 矩阵
?通过矩阵的结构变换,获得新矩阵
表2矩阵结构变化产生新矩阵
L=tril(A)
L主对角线及以下兀素取矩阵 A的兀素,其余为0
L=tril(A,k)
L及第k条对角线及以下兀素取矩阵 A的兀素,其余为
0
U=triu(A)
U主对角线及以上的兀素取矩阵 A的兀素,其余为0
53
5
3
U=triu(A,k)
U第k条对角线及以上的兀素取矩阵 A的兀素,其余为
0
B=rot90(A)
矩阵A逆时针旋转90°得到B
B=rot90(A,k)
矩阵A逆时针旋转k*90 °得到B
B=fliplr(A)
矩阵A左右翻转得到B
B=flipud(A)
矩阵A上下翻转得到B
B=reshape(A,m,
n)
将矩阵A的兀素重新排列,得到 m*n的新矩阵(m*n
就等于A的行列式之积。若 A为3*4 ,则m n可为2, 6
或4, 3等
?数组(矩阵)操作
对数组或矩阵的基本操作有插入、重新排列、提取、按列拉长、置空(去掉某行或某列)
置零、用单信下标操作一个矩阵,用逻辑数组操作一个矩阵、按指定条件求子数组,求数组的 规模等,下面一一举例说明(对数组和矩阵不加区别) 。
X=4:6 x=4 5 6
插入 通过对X进行插入运算创建矩阵 A
A=[x-3;x;x+3] A=1 2 3
5 6
7 8 9
重新排列 以逆序重排A的各行形成矩阵B
B=A(3:-1:1,1:3) B=7 8 9
TOC \o "1-5" \h \z 5 6
2 3
提取 提取A的前两行的后两列形成矩阵 C
C=A(1:2,2:3) C=2 3
6
按列拉长 对C按列拉长形成矩阵 D
D=C(:) D=2
6
6
⑤置空删除
⑤置空
删除 B 的第 2 列
B(:,2)=[] B=7 9
4 6
3
置零 将矩阵B的第2行第2列的元素置为1
B[2,2]=0 B=7 9 4 0
1 3
用单个下标操作一个矩阵
MATLAB寸矩阵中的元素赋予一个序号,序号值按列从第 1列第1行到第1列第2行到第2
列第 1 行到第 2 列第 2 行,直至最后一列最后一行的顺序计数。
B(3) ans=1
B(5) ans=0
B(2:4) ans=4 1 9
用逻辑数组操作一个矩阵
x=-4:4 x=-4 - 3 - 2 - 1 0 1 2 3 4
%判断数组中的元素的绝寸值大于 3的情况,绝寸值大于 3的元素置为 1,否则为 0。
abs(x)>3 ans=1 0 0 0 0 0 0 0 1
寸矩阵可进行同样操作:
A=[1,2,3;4,5,6;7,8,9] A=1 2 3
4 5 6
7 8 9
abs(A)>3 ans=0 0 0
1 1 1
1 1 1
按指定条件求子数组 首先由条件表达式生成一个逻辑数组,然后使用系统提供的函数即可,函数在已知数组中
按逻辑数组的元素值查找所需的元素下标。
a=abs(x)>2 a=1 1 0 0 0 0 0 1 1
b=fin d(a) b=1 2 8 9
y=x(b) y=-4 - 3 3 4
函数find也可用于矩阵。
A=[1:3;4:6;7:9] A=I 2 3
4 5 6
7 8 9
B=A>4 B=O 0 0
0 1 1
1 1 1
TOC \o "1-5" \h \z [r,s]=fi nd(B) r=3 s=1
2
2
3
3
三、实验内容与步骤
用三种方法创建一个 3× 3矩阵,然后利用矩阵编辑器, 将其扩充为4× 5矩阵,并保存,
试着调用它。
⑴直接输入法
TOC \o "1-5" \h \z 女口在命令区输入 A=[3,2,1;4,5,6;7,8,9] 。
? ?[33‰1?Bj6;LeJffJ
A =
2 1
5 6
7 8 9
⑵ 直接利用MATLABl供的函数创建一个 3× 3矩阵
如在命令区输入rand(3,3)即得到一个3× 3的随机矩阵。
>> rand (3, 3)
ans -
O. Sl?7 O.Θ134 0.2785
Oi 905E 0. 6324 0.5469
0. 1270 0. 0975 0.9575
⑶利用MATLAB^供的“ MatriX Editor ”完成输入
步骤1在命令区输入A=1。
步骤2用鼠标单击工具栏的工作区浏览器, MATLA眸出变量浏览器,选中变量 A,鼠标左
键双击A,打开矩阵编辑器。
步骤3在左下脚的两个文本框中分别输入希望得到的矩阵的行数和列数: 3行3列,即得
到一个3 × 3矩阵。
步骤4要将上面矩阵改为一个 4× 5矩阵,只需改变矩阵的行数和列数即可。如将 3行3
列改为4行5列,即可得到一个 4×5矩阵。若想修改其中的元素,只需用鼠标选中表格中我们 想要修改的元素,将原来的元素修改为我需要的值。
步骤5要命令区输入SaVe data A(data为我们给变量文件起的名称,系统会自动沿设定好
的路径以“ .mat ”格式存储文件),即可保存上面例子中创建的矩阵 AO
步骤6在命令区输入load data即可把保存在文件中的矩阵读到 MATLA啲工作区的内存中
来。
? IDad data
? A
FH 3χ3 double
1
2
3
1
1
2
3
A =
1 2 3
4 5 6
7 6 9
2
4
5
&
3
4
7
3
g
5
6
建立一个等差数列,然后由它产生一个对角阵。
步骤1在命令区输入a=li nspace(0,1.5,5) 产生一个等差数列。
>> ^=Iinspace (OJ 1. 5, S)
a =
0 0, 3750 0.7500 I. 1250 I- 5000
步骤2在命令区输入B=diag(a)产生一个对角阵。
>> B=diac CB)
B =
0
0
0
0
0
0 0. 3750
0
0
0
0
0
0.7500
0
0
0
0
0
1.1250
0
0
0
0
0
L 5000
3.利用MATLAB勺函数
inv(A)
求方阵A的逆矩阵。
步骤1在命令区输入A=[1,2;5,6]得到一个2× 2的方阵。
? A=[lf2ι5,β]
1
5
2
6
步骤2再输入
B=inv(A)求出A的逆矩阵。
? E≈inv(A)
B =
0. 5000-O- 2500
0. 5000
-O- 2500
L 2500
四、练习
创建一个5×5矩阵,提取主对角线以上的部分。
17
24
1
8
15
23
5
Ii
Ie
?|
―
6
13
20
22
10
12
Ig
2L
3
11
JS
25
2
9
A=rand(3) , B=magic(3) , C=rand(3,4),计算 A× B×C
? A=rand¢3) JB=IiIagic (3) JC=Iand(3j 4)j A+E+C
3ΠΞ 二
5. 719711609. 530913. 3871
5. 7197
1160
9. 5309
13. 3871
4.3512
18.5343
11.2443
3.3637
15.9527
L 王 1451
4.2469
18. 3647
创建一个3×3矩阵,并求其转置,逆矩阵。
>> A= Tlanti ¢4 )
A =
O- 1386
O-
2543
O-
3500
O_
4733
O- 1493
O-
S 1 43
O”
1 9S6
O”
35 1 T
O. 2S7S
0.
2435
0.
2S1 1
0.
8308
6 3407
0.
9293
0.
6 1 60
0-
5S53
>> B= ZLrW■ CA) J
C=AJ
B =
-2- 7762
—1 .
2072
O-
9D6O
1 -
5565
—O. 4764
1 -
593?
—O.
3304
-O-
1 032
4- 9898
-O-
9368
—2 -
5293
CL
1183
-O* 5079
O-
1 902
1*
756 1
-O.
48V9
C =
O*13SG
O-
1 493
O. 2575
O- 840T
6 2543
0,
3143
0. 243S
0. 9293
O, 3500
0-
1 S66
O. 251 1
O- 6 1 €0
O- 4733
O-
35 I T
O-8308
O- 5853
用两种方法求Ax=b的解(A为4阶随机矩阵,b为4阶列向量)。
>>
A= it and C 4 ) JF
B= [ 1 ;Ξ ; 3
f:4]j κ=bXA
A
O-
5497
O.T53T
O
.0540
O-
1 299
O,
9172
Q.3804
O
.5308
S6S8
0.
2S5S
O- 56TS
O
* T7&2
0.
4694
0,
75T2
O, 0759
O
? 9340
0.
0119
B
1
2
ZSC =
O-
1 374
α.
1884
O-
0 135
O.
0325
0.
2293
6
095 1
6
1 327
0.
1 422
0,
07 15
O-
I 420
O-
1 94S
0*
1173
O-
1 893
O.
0 190
O.
2335
O.
0030
创建一个4阶随机矩阵A,计算A3。
> > a= r ?rtd
a =
O- 8253
0.4427
0.7749
0.3998
6 5333
O-1067
O- Sl 73
O-25θ9
O- 996 L
0. 96 19
0.8637
O.SOOl
6 0782
O.Oo46
O.OS44
0. >4314
>> a^3
3, S465
2. 5359
3. 8724
2. S91 4
2_ 9723
1.896 L
3. 0理23
2.22S2
5- 1207
3, 4490
5.0?33
3. &θ?0
O. 4 122
0.2633
0.4154
0. 3674
五、实验分析
矩阵和数组操作实验比较麻烦,容易搞混,尤其是它的各种运算
六、实验总结
矩阵和数组是比较相似,容易搞混的两个概念,特别是它的一些运算,但矩阵和数组操作 是非常有用的在 MATLA時,它们可以直接解决一些简单的问题。
推荐访问:实验报告 数组 矩阵 实验 Matlab实验报告(二)矩阵和数组操作