文档详情

Matlab实验报告(二)矩阵和数组操作..doc

发布:2017-01-07约3.48千字共8页下载文档
文本预览下载声明
实验目的 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的元素,其余为0 U=triu(A) U主对角线及以上的元素取矩阵A的元素,其余为0 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等 3.数组(矩阵)操作 对数组或矩阵的基本操作有插入、重新排列、提取、按列拉长、置空(去掉某行或某列)、置零、用单信下标操作一个矩阵,用逻辑数组操作一个矩阵、按指定条件求子数组,求数组的规模等,下面一一举例说明(对数组和矩阵不加区别)。 X=4:6 x=4 5 6 ①插入 通过对x进行插入运算创建矩阵A A=[x-3;x;x+3] A=1 2 3 4 5 6 7 8 9 ②重新排列 以逆序重排A的各行形成矩阵B B=A(3:-1:1,1:3) B=7 8 9 4 5 6 1 2 3 ③提取 提取A的前两行的后两列形成矩阵C C=A(1:2,2:3) C=2 3 5 6 ④按列拉长 对C按列拉长形成矩阵D D=C(:) D=2 5 3 6 ⑤置空 删除B的第2 列 B(:,2)=[] B=7 9 4 6 1 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 ⑨按指定条件求子数组 首先由条件表达式生成一个逻辑数组,然后使用系统提供的函数即可,函数在已知数组中按逻辑数组的元素值查找所需的元素下标
显示全部
相似文档