MATLAB学习笔记————(MATLAB的矩阵及其操作①)

MATLAB的矩阵及其操作

▲矩阵及其操作是MATLAB语言的重要组成部分,MATLAB语言提供了强大矩阵运算和处理能力。正是由于MATLAB对矩阵操作具有非凡的能力,使其成为有关矩阵应用领域的一个有力工具。

●矩阵的生成及初等运算
矩阵的生成
  1. 直接生成

矩阵的生成可以通过在方括号 [ ] 中输入元素实现,不同行之间要用分号隔开,不同列用空格分开。

A=[1 2 3;4 5 6]

A =
1 2 3
4 5 6

A=[1:3;4:6]
A =
1 2 3
4 5 6

%可以用冒号:快速建立矩阵,默认步长为1也可以自己定义步长
A=[1:2:7;1:3:10]   %步长分别为2和3
A =
1 3  5  7
1 4  7 10

  1. 函数生成
    MATLAB 中提供了可以生成特殊函数。

A=zeros(2,3)  %生成2X3全零矩阵
A =
0 0 0
0 0 0

A=eye(3,3)  %生成3X3单位矩阵
A =
1 0 0
0 1 0
0 0 1

●常用的特殊矩阵

矩阵函数用法释义
全零阵zeroszeros(x,y)生成x X y全零矩阵
单位阵eyeeye(x,y)生成 x X y单位矩阵
全1阵onesones(x,y)生成 x X y全1矩阵
均匀分布随机矩阵randrand(x);rand(x,y)生成 x X x均匀分布的的随机矩阵;生成 x X y均匀分布的的随机矩阵
正态分布随机矩阵randn以上用法与数组相同,可以看前一篇帖同数组创建方法相同
产生线性等分向量linspacelinspace(x,y);linspace(a,b,n)表示生成包含x到y1行100列矩阵;表示生成包含a到b1行n列矩阵
产生对数等分向量logspacelogspace(a,b,n),其中a、b、n分别表示开始值(10a)、结束值(10b)、元素个数(n)生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50
Wilkinson特征值测试阵wilinsonwilkinson(x),对称三对角矩阵生成x X x的特征值测试阵(主对角线从x依次减1到0后在依次加1升到x,紧挨的两侧的副对角线元素全为1
友矩阵(伴随矩阵)companA = compan(u);后面有例题可供参考A = compan(u) 返回第一行为 -u(2:n)/u(1) 的对应伴随矩阵,其中u (2:n)为u的第2到第n个元素, u 是多项式系数向量。compan(u) 的特征值是多项式的根
Hadamard矩阵hadamardhadamard(n);n 必须为整数,并且 n、n/12 或 n/20 必须为 2 的幂哈达玛(Hadamard)矩阵是由+1和-1元素构成的正交方阵。所谓正交方阵,指它的任意两行(或两列)都是正交的。把行(或列)看作一个函数,任意两行(或两列)都是正交的
Hankel矩阵hankelH=hankel ( a );H=hankel ( a,b )后面有介绍可供参考汉克尔矩阵 (Hankel Matrix) 是指每一条副对角线上的元素都相等的矩阵,在数字信号处理、数值计算、系统控制等领域均有广泛的应用
Hilbert矩阵hilbhilb(n)希尔伯特矩阵是方阵;是一种特殊的汉克尔矩阵
逆Hilbert矩阵invhilbinvhilb(n)生成n阶Hilbert矩阵的逆矩阵
Magic矩阵magicmagic(n)magic是一种函数,用于产生魔方矩阵它的每行、列以及对角线的数之和相等。该和的值为1+2+3+…+n^2的和再除以n,n必须为大于或等于3的整数
Pascal矩阵pascalpascal(n)帕斯卡矩阵由杨辉三角形表组成的矩阵
托普利兹矩阵toeplitztoeplitz(x,y)托普利兹矩阵,简称为T型矩阵。托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。简单的T形矩阵包括前向位移矩阵和后向位移矩阵。它生成一个以 x 为第一列,y 为第一行的托普利兹矩阵,这里x, y均为向量,两者不必等长。

友矩阵(伴随矩阵)compan的例题:

求(x-1)(x-2)(x+3)=x3-7x+6 对应的伴随矩阵

u = [1 0 -7 6];  %其中 u 是多项式系数向量按降幂排序
A = compan(u)

A =
0 7 -6
1 0  0
0 1  0

A 的特征值是多项式的根

eig(A)

ans =
-3.0000
2.0000
1.0000

Hankel矩阵的构成方式是:先指定第一列和最后一行,矩阵中其他所有元素都与其左下角相邻位置的元素相等。

语法格式
  1. H=hankel ( a )

生成对称的Hankel矩阵。第一列元素为a,次对角线下方所有元素均为零。

  1. H=hankel(a,b)

生成非对称的Hankel矩阵。第一列元素为a,最后一行元素为b,若a的最后一个元素与b的第一个元素不相等,交叉位置的元素取a的最后一个元素。(会产生警告: 输入列的最后一个元素与输入行的第一个元素不匹配。在反对角线冲突中,列具有更高优先级。 )

Hilbert矩阵

在这里插入图片描述

冒号表达式:

在MATLAB中,冒号是个很重要的运算符,可以产生行向量。冒号表达式一般格式是:

e1:e2:e3
t=0:1:5

t=[0 1 2 3 4 5]

linspace(a,b,n) %a和b分别为第一个和最后一个元素,n为元素总数

矩阵的拆分:

sub2ind(下标转序号)
ind2sub(序号转下标)

a=[ 1 2 3 4 5 6;1:6;2:7;3:8;5:10]
a(3:5,2:4)  %将a矩阵拆分取其3-5行和2-4列

矩阵重构:

A( : )    %将矩阵A的所有元素堆叠起来,成为一个列向量,这也是MATLAB变量的内部存储方式。

矩阵删除:

c( [1,3,5], : ) = [ ]  %删除1、3、5行,组成新矩阵
c( : ,[1,3,5] ) = [ ]  %删除1、3、5列,组成新矩阵

c(end, : )     %取c最后一行的元素
c([1,4],3:end)   %取c第1,4两行和从第3列到最后一列的元素

矩阵的连接:

①C=cat(dim,A,B):dim指链接方向。

dim的可选值:1,垂直方向;2,水平方向;3,生成三维数组。

②C=cat(dim,A1,A2,…):可以实现链接多个矩阵。

函数功能用法
cat链接矩阵cat(dim,A,B)/cat(dim,A1,A2,…)
horzcat水平链接多个矩阵horzcat(A,B)
vertcat垂直链接多个矩阵vertcat(A,B)
repmat复制一个矩阵到另一个矩阵如下
blkdiag对角链接多个矩阵blkdiag(A,B)

repmat的用法有以下几种:

repmat (A, m)
repmat (A, m, n)
repmat (A, m, n, p …)
repmat (A, [m n])
repmat (A, [m n p …])

A = [1 2 3;4 5 6;7 8 9];
B = repmat(A,3,3)

B =    %B矩阵是由A矩阵3 x 3构成的

 1     2     3     1     2     3     1     2     3
 4     5     6     4     5     6     4     5     6
 7     8     9     7     8     9     7     8     9
 1     2     3     1     2     3     1     2     3
 4     5     6     4     5     6     4     5     6
 7     8     9     7     8     9     7     8     9
 1     2     3     1     2     3     1     2     3
 4     5     6     4     5     6     4     5     6
 7     8     9     7     8     9     7     8     9
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值