2022年matlab矩阵操作汇总.docx
精品学习资源matlab矩阵操作大全1.1.1 数值矩阵的生成1实数值矩阵输入MATLAB 的强大功能之一表达在能直接处理向量或矩阵; 当然首要任务是输入待处理的向量或矩阵;不 管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不 同的行用分号(;)分隔;全部元素处于一方括号( )内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号;如:>> Time = 111212345678910Time =111212345678910>> X_Data = 2.323.43 ; 4.375.98X_Data = 2.433.434.375.98>> vect_a = 12345 vect_a =12345>> Matrix_B = 123 ;>>234; 345Matrix_B = 123234345>> Null_M = %生成一个空矩阵2复数矩阵输入复数矩阵有两种生成方式:第一种方式欢迎下载精品学习资源例 1-1>> a="2".7 ;b=13/25 ;>> C=1,2*a+i*b,b*sqrta; sinpi/4,a+5*b,3.5+1 C=1.00005.4000 + 0.5200i0.85440.70715.30004.5000第 2 种方式例 1-2>> R=1 2 3 ;4 5 6, M=11 12 13;14 15 16 R =123456M =111213141516>> CN="R"+i*M CN =1.0000 +11.0000i2.0000 +12.0000i3.0000 +13.0000i4.0000 +14.0000i5.0000 +15.0000i6.0000 +16.0000i1.1.2 符号矩阵的生成在 MATLAB 中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像, 只不过要用到符号矩阵定义函数sym ,或者是用到符号定义函数 syms ,先定义一些必要的符号变量,再像定义一般矩阵一样输入符号矩阵;1用命令 sym 定义矩阵:这时的函数 sym 实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制, 只是将方括号置于用于创建符号表达式的单引号中;如下例:例 1-3欢迎下载精品学习资源>> sym_matrix = sym('a b c ;Jack , Help Me. ,NO WAY. ,')sym_matrix =abcJackHelp Me.NO WAY.>> sym_digits = sym('1 2 3 ; a b c ;sin( x) cos ( y) tan(z) ') sym_digits =123abcsin ( x) cos ( y)tan( z) 2用命令 syms 定义矩阵先定义矩阵中的每一个元素为一个符号变量,而后像一般矩阵一样输入符号矩阵;例 1-4>> symsabc ;>> M1 = sym ('Classical' );>> M2 = sym (' Jazz' );>> M3 = sym ('Blues' )>> syms_matrix = abc; M1 , M2 , M3 ; int2str (235) syms_matrix =abc ClassicalJazzBlues 235把数值矩阵转化成相应的符号矩阵;数值型和符号型在 MATLAB 中是不相同的,它们之间不能直接进行转化;MATLAB 供应了一个将数值型转化成符号型的命令,即 sym ;例 1-5>> Digit_Matrix = 1/3sqrt(2) 3.4234 ;exp(0.23 ) log( 29) 23欢迎下载精品学习资源( -11.23 )>> Syms_Matrix = sym( Digit_Matrix ) 结果是:Digit_Matrix =0.33331.41423.42341.25863.36730.0000Syms_Matrix =1/3 ,sqrt ( 2),17117/5000 5668230535726899*2(-52 ), 7582476122586655*2(-51 ), 5174709270083729*2( -103 )留意:矩阵是用分数形式仍是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示;1.1.3 大矩阵的生成对于大型矩阵,一般创建 M 文件,以便于修改:216875448881365456788982154566845896545987548810963377例 1-6用 M 文件创建大矩阵,文件名为example.m exm= 456468873257955在 MATLAB 窗口输入:>>example ;>>sizeexm%显示 exm 的大小ans=56%表示 exm 有 5 行 6 列;1.1.4 多维数组的创建函数cat欢迎下载精品学习资源格式A="cat"n,A1,A2,Am说明n="1 和 n"=2 时分别构造 A1 ;A2 和A1 , A2 ,都是二维数组, 而 n=3 时可以构造出三维数组;例 1-7>> A1=1,2,3 ;4,5,6 ;7,8,9 ;A2=A1' ;A3=A1-A2 ;>> A4=cat3,A1,A2,A3 A4:,:,1 =123456789A4:,:,2 =147258369A4:,:,3 =0-2-420-2420或用另一种原始方式可以定义: 例 1-8>> A1=1,2,3 ;4,5,6 ;7,8,9 ;A2=A1' ;A3=A1-A2 ;>> A5:,:,1=A1, A5:,:,2=A2, A5:,:,3=A3 A5:,:,1 =123456789A5:,:,2 =147258369A5:,:,3 =0-2-420-24201.1.5 特殊矩阵的生成欢迎下载精品学习资源命令全零阵函数zeros格式B = zerosn%生成 n×n 全零阵B = zerosm,n% 生成 m×n 全零阵B = zerosm n% 生成 m×n 全零阵B = zerosd1,d2,d3%生成 d1× d2× d3×全零阵或数组 B = zerosd1 d2 d3%生成 d1× d2× d3×全零阵或数组 B = zerossizeA% 生成与矩阵 A 相同大小的全零阵命令单位阵函数eye格式Y=eyen%生成 n×n 单位阵Y=eyem,n%生成 m×n 单位阵Y=eyesizeA%生成与矩阵 A 相同大小的单位阵命令全 1 阵函数ones格式Y = onesn%生成 n×n 全 1 阵Y = onesm,n% 生成 m×n 全 1 阵Y = onesm n%生成 m×n 全 1 阵Y = onesd1,d2,d3 %生成 d1× d2× d3×全 1 阵或数组 Y = onesd1 d2 d3%生成 d1× d2× d3×全 1 阵或数组 Y = onessizeA%生成与矩阵 A 相同大小的全 1 阵命令均匀分布随机矩阵欢迎下载精品学习资源函数rand格式Y = randn% 生成 n×n 随机矩阵,其元素在( 0 , 1)内Y = randm,n%生成 m×n 随机矩阵Y = randm n% 生成 m×n 随机矩阵Y = randm,n,p, %生成 m× n×p×随机矩阵或数组 Y = randm n p %生成 m× n×p×随机矩阵或数组 Y = randsizeA% 生成与矩阵 A 相同大小的随机矩阵rand%无变量输入时只产生一个随机数s = rand'state'% 产生包括均匀发生器当前状态的35 个元素的向量rand'state', s%使状态重置为 srand'state', 0%重置发生器到初始状态 rand'state', j%对整数 j 重置发生器到第 j 个状态rand'state', sum 100*clock%每次重置到不同状态例 1-9产生一个 3×4 随机矩阵>> R="rand"3,4 R =0.95010.48600.45650.44470.23110.89130.01850.61540.60680.76210.82140.7919例 1-10产生一个在区间 10, 20 内均匀分布的 4 阶随机矩阵>> a="10" ;b=20 ;19.218119.354710.578911.388917.382119.169013.528712.027711.762714.102718.131711.9872>> x="a"+b-a*rand4 x =欢迎下载精品学习资源14.057118.936510.098616.0379命令正态分布随机矩阵函数randn格式Y = randnn% 生成 n×n 正态分布随机矩阵Y = randnm,n%生成 m×n 正态分布随机矩阵Y = randnm n%生成 m×n 正态分布随机矩阵Y = randnm,n,p, %生成 m× n×p×正态分布随机矩阵或数组 Y = randnm n p%生成 m× n×p×正态分布随机矩阵或数组 Y = randnsizeA%生成与矩阵 A 相同大小的正态分布随机矩阵randn% 无变量输入时只产生一个正态分布随机数s = randn'state'%产生包括正态发生器当前状态的2 个元素的向量s = randn'state', s%重置状态为 ss = randn'state', 0%重置发生器为初始状态s = randn'state', j%对于整数 j 重置状态到第 j 状态s = randn'state', sum100*clock% 每次重置到不同状态例 1-11产生均值为 0.6 ,方差为 0.1 的 4 阶矩阵>> mu="0".6 ; sigma="0".1 ;>> x="mu"+sqrtsigma*randn4 x =0.83110.77990.13351.05650.78270.51920.52600.48900.61270.48060.63750.79710.81410.50640.69960.8527命令产生随机排列函数randperm欢迎下载精品学习资源格式p = randpermn% 产生 1n 之间整数的随机排列例 1-12>> randperm6 ans =321546命令产生线性等分向量函数linspace格式y = linspacea,b%在a, b 上产生 100 个线性等分点y = linspacea,b,n% 在a, b 上产生 n 个线性等分点命令产生对数等分向量函数logspace格式y = logspacea,b%在()之间产生 50 个对数等分向量y = logspacea,b,n y = logspacea,pi命令运算矩阵中元素个数n = numela%返回矩阵 A 的元素的个数命令产生以输入元素为对角线元素的矩阵 函数blkdiag格式out = blkdiaga,b,c,d,%产生以 a,b,c,d,为对角线元素的矩阵例 1-13>> out = blkdiag1,2,3,4 out =1000020000300004命令友矩阵欢迎下载精品学习资源函数compan格式A = companu%u 为多项式系统向量, A 为友矩阵, A 的第 1 行元素为-u 2:n/u1 ,其中 u 2:n 为 u 的第 2 到第 n 个元素, A 为特点值就是多项式的特点根;例 1-14求多项式的友矩阵和根>> u=1 0 -7 6 ;>> A="compan"u% 求多项式的友矩阵A =07-6100010>> eigA%A 的特点值就是多项式的根ans =-3.00002.00001.0000命令hadamard 矩阵函数hadamard格式H = hadamardn%返回 n 阶 hadamard矩阵例 1-15>> h="hadamard"4 h =11111-11-111-1-11-1-11命令Hankel 方阵函数hankel格式H = hankelc%第 1 列元素为 c,反三角以下元素为 0;欢迎下载精品学习资源H = hankelc,r% 第 1 列元素为 c,最终一行元素为 r,假如 c 的最终一个元素与 r 的第一个元素不同, 交叉位置元素取为c 的最终一个元素;例 1-16>> c="1:3",r=7:10c =123r =78910>> h="hankel"c,r h =1238238938910命令Hilbert 矩阵函数hilb格式H = hilbn%返回 n 阶 Hilbert 矩阵,其元素为 Hi,j=1/i+j-1 ;例 1-17产生一个 3 阶 Hilbert 矩阵>> format rat%以有理形式输出>> H="hilb"3 H =11/21/31/21/31/41/31/41/5命令逆 Hilbert 矩阵函数invhilb格式H = invhilbn%产生 n 阶逆 Hilbert 矩阵命令Magic 魔方矩阵函数magic格式M = magicn%产生 n 阶魔方矩阵例 1-18欢迎下载精品学习资源>> M="magic"3 M =816357492命令Pascal 矩阵函数pascal格式A = pascaln%产生 n 阶 Pascal 矩阵,它是对称、正定矩阵, 它的元素由 Pascal 三角组成,它的逆矩阵的全部元素都是整数;A = pascaln,1%返回由下三角的 Cholesky 系数组成的 Pascal 矩阵A = pascaln,2%返回 Pascaln,1 的转置和交换的形式例 1-19>> A="pascal"4A =1111123413610141020>> A="pascal"3,1 A =1001-101-21>> A="pascal"3,2 A =111-2-10100命令托普利兹矩阵函数toeplitz格式T = toeplitzc,r% 生成一个非对称的托普利兹矩阵,将c 作为第 1 列,将 r 作为第 1 行,其余元素与左上角相邻元素相等;欢迎下载精品学习资源T = toeplitzr%用向量 r 生成一个对称的托普利兹矩阵例 1-20>> c=1 2 3 4 5 ;>> r=1.5 2.5 3.5 4.5 5.5;>> T="toeplitz"c,r T =例 1-21>> W="wilkinson"4 W =15/27/29/211/2215/27/29/23215/27/243215/254321命令Wilkinson 特点值测试阵函数wilkinson格式W = wilkinsonn% 返回n 阶 Wilkinson特点值测试阵3/210011/210011/210013/2>> W="wilkinson"7W =3100000121000001110000010100000111000001210000013欢迎下载