matlab实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告
课程名称:Matlab电子信息应用实验项目:矩阵和数组的操作
实验地点:电机馆跨越机房
专业班级:学号:
学生姓名:
指导教师:
2014年3月26 日
一、实验目的
1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。
二、预备知识
1.常用的产生特殊矩阵的函数
•eye(m,n) 单位阵
•rand(m,n) 随机矩阵
•randn(m,n) 正态分布的随机矩阵
•zeros(m,n) 零矩阵
•ones(m,n) 全部元素都为1的矩阵
•compan(A) 矩阵A的伴随矩阵
•bankel(m,n) n维Hankel矩阵
•invhilb(n) n维逆Hilbert矩阵
•magic(n) n维Magic矩阵
•toeplitz(m,n) Toeplitz矩阵
•wilkinson(n) n维Wilkinson特征值测试矩阵
•handamard(n) n维Handamard矩阵
•hilb(n) n维Hilbert矩阵
•kron(A,B) Kronecker张量积
•pascal(n) n维Pascal矩阵
•vander(A) 由矩阵A产生Vandermonde矩阵
2.通过矩阵的结构变换,获得新矩阵
表2 矩阵结构变化产生新矩阵
L=tril(A) L主对角线及以下元素取矩阵A 的元素,其余为0
L=tril(A,k) L及第k条对角线及以下元素取矩阵A的元素,其余为
U=triu(A) U主对角线及以上的元素取矩阵A的元素,其余为0
U=triu(A,k) U第k条对角线及以上的元素取矩阵A的元素,其余为
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等
3.数组(矩阵)操作
对数组或矩阵的基本操作有插入、重新排列、提取、按列拉长、置空(去掉某行或某列)、置零、用单信下标操作一个矩阵,用逻辑数组操作一个矩阵、按指定条件求子数组,求数组的规模等.
①插入通过对x进行插入运算创建矩阵A
②重新排列以逆序重排A的各行形成矩阵B
③提取提取A的前两行的后两列形成矩阵C
④按列拉长对C按列拉长形成矩阵D
⑤置空删除B的第2 列
⑥置零将矩阵B的第2行第2列的元素置为1
⑦用单个下标操作一个矩阵
MATLAB对矩阵中的元素赋予一个序号,序号值按列从第1列第1行到第1列第2行到第2列第1行到第2列第2行,直至最后一列最后一行的顺序计数。
⑧用逻辑数组操作一个矩阵
⑨按指定条件求子数组
首先由条件表达式生成一个逻辑数组,然后使用系统提供的函数即可,函数在已知数组中按逻辑数组的元素值查找所需的元素下标。
三、实验内容与步骤
1.用三种方法创建一个3×3矩阵,然后利用矩阵编辑器,将其扩充为4×5矩阵,并保存,试着调用它。
⑴直接输入法
⑵直接利用MATLAB提供的函数创建一个3×3矩阵
⑶利用MATLAB提供的“Matrix Editor”完成输入
步骤1 在命令区输入A=1。
步骤2 用鼠标单击工具栏的工作区浏览器,MATLAB弹出变量浏览器,选中变量A,鼠标左键双击A,打开矩阵编辑器。
步骤3 在左下脚的两个文本框中分别输入希望得到的矩阵的行数和列数:3行3列,即得到一个3×3矩阵。
步骤4 要将上面矩阵改为一个4×5矩阵,只需改变矩阵的行数和列数即可。如将3行3列改为4行5列,即可得到一个4×5矩阵。若想修改其中的元素,只需用鼠标选中表格中我们想要修改的元素,将原来的元素修改为我需要的值。
步骤5 要命令区输入save data A(data为我们给变量文件起的名称,系统会自动沿设定好的路径以“.mat”格式存储文件),即可保存上面例子中创建的矩阵A。
步骤6 在命令区输入load data即可把保存在文件中的矩阵读到MATLAB的工作区的内存中来。
2.建立一个等差数列,然后由它产生一个对角阵。
步骤1 在命令区输入a=linspace(0,1.5,5)产生一个等差数列。
步骤2 在命令区输入B=diag(a)产生一个对角阵。
3.利用MATLAB的函数inv(A)求方阵A的逆矩阵。
步骤1 在命令区输入A=[1,2;5,6]得到一个2×2的方阵。
步骤2 再输入B=inv(A)求出A 的逆矩阵。
四、练习
1.创建一个5×5矩阵,提取主对角线以上的部分。
>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> triu(A)
ans =
17 24 1 8 15
0 5 7 14 16
0 0 13 20 22
0 0 0 21 3
0 0 0 0 9
2.A=rand(3),B=magic(3),C=rand(3,4),计算A×B×C
>> A=rand(3);B=magic(3);C=rand(3,4);A*B*C
ans =
17.3808 17.3271 20.6044 11.7374
11.1003 9.1717 13.4321 6.6676
20.3142 20.2013 25.0142 15.4465
3.创建一个3×3矩阵,并求其转置,逆矩阵。
>> A=magic(3),A',inv(A)
A =
8 1 6
3 5 7
4 9 2
ans =
8 3 4
1 5 9
6 7 2
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
4.用两种方法求Ax=b的解(A为4阶随机矩阵,b为4阶列向量)。>> A=rand(4),b=[1;2;3;4],x1=A\b,x2=inv(A)*b
A =
0.5252 0.0196 0.5028 0.1897