MATLAB笔记2:MATLAB矩阵处理

这篇博客详细介绍了MATLAB中矩阵的特殊矩阵、变换、求值、特征值与特征向量以及稀疏矩阵的相关操作,包括zeros函数、对角阵、矩阵的转置、行列式、特征值计算以及稀疏矩阵的存储方式等。
摘要由CSDN通过智能技术生成

 

目录

一、特殊矩阵

1.zeros函数的调用格式

2.用于专门学科的特殊矩阵

魔方矩阵  Magic Square

范德蒙矩阵

希尔伯特矩阵

伴随矩阵

帕斯卡矩阵

二、矩阵变换

1.对角阵

提取矩阵的对角线元素

构造对角矩阵

2.三角阵

上三角阵

下三角阵

3.矩阵的转置

4.矩阵的旋转

5.矩阵的翻转

6.矩阵的求逆

三、矩阵求值

1.方阵的行列式

2.矩阵的秩

3.矩阵的迹

4.向量和矩阵的范数

向量的三种常用范数:

矩阵的范数

5.矩阵的条件数

四、矩阵的特征值与特征向量

1.矩阵特征值的数学定义

2.特征值的集合意义

五、稀疏矩阵

1.矩阵的存储方式

2.稀疏存储方式的产生

完全存储方式与稀疏存储方式之间的转化

直接建立稀疏存储矩阵

带状稀疏矩阵得稀疏存储

单位矩阵的稀疏存储


 

 

一、特殊矩阵

 

 

zeros函数:产生全0矩阵,即零矩阵。

ones函数:产生全1矩阵,即幺矩阵。

eye函数:产生对角线为1的矩阵。当矩阵是方阵时,得到一个单位矩阵。

rand函数:产生(0,1)区间均匀分布的随机矩阵。

randn函数:产生均值为0,方差为1的标准正态分布随机矩阵。

 

1.zeros函数的调用格式

 

zeros(m):产生m*m零矩阵。

zeros(m,n):产生m*n零矩阵。

zeros(size(A)):产生与矩阵A同样大小的零矩阵。

其中,size函数返回矩阵A的行数列数组成的向量

 

 

例子:

>> A=zeros(2,3)

A =

     0     0     0
     0     0     0

>> zeros(size(reshape(A,3,2)))

ans =

     0     0
     0     0
     0     0

 

其中,

reshape函数将A转换为3行2列的函数。

 

 

例子:

首先产生5阶两位随机整数矩阵A,再产生均值为0.6、方差为0.1的5阶正态分布随机矩阵B,最后验证(A+B)L = LA+LB(其中L为单位矩阵)。

 

rand函数:产生(0,1)开区间均匀分布的随机数x。

fix(a+(b - a + 1)*x):产生[a,b]区间上均匀分布的随机整数。

randn函数:产生均值为0、方差为1的标准正态分布随机数x。

u + 西格玛x:得到均值为u,方差为西格玛的平方的随机数。

 

double是MATLAB中默认数值数据类型,它可为大多数计算提供足够的精度。数值变量自动存储为64位(8字节)双精度浮点值。

 

>> A=fix(10+(99-10+1)*rand(5));
>> B=0.6+sqrt(0.1)*randn(5);
>> C=eye(5);
>> (A+B)*C==C*A+B*C

ans =

  5×5 logical 数组

   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1

其中,sqrt,平方根。

logical 将数值转换未逻辑值。

语法:L=logical(A)   将 A 转换为一个逻辑值数组。A 中的任意非零元素都将转换为逻辑值 1 (true),零则转换为逻辑值 0 (false)。复数值和 NaN 不能转换为逻辑值,因此会导致转换错误。

 

 

2.用于专门学科的特殊矩阵

 

魔方矩阵  Magic Square

>> M=magic(3)

M =

     8     1     6
     3     5     7
     4     9     2

n阶魔方阵由1、2、3、...    、n方共n方个整数组成,且每行、每列以及主、副对角线上各n个元素之和都相等。

n阶魔方阵每行每列元素的和为(1+2+3+...+n方)/n = (n + n三次方)/2。

MATLAB函数magic(n)产生一个特定的魔方阵。

 

例子:产生8阶魔方阵,求其每行每列元素的和。

>> M=magic(8);
>> sum(M(1,:))

ans =

   260
>> sum(M(:,1))

ans =

   260

范德蒙矩阵

 

 

在MATLAB中,函数vander(V)生成以向量V为基础的范德蒙(Vandermonde)矩阵。

>> A=vander(1:5)

A =

     1     1     1     1     1
    16     8     4     2     1
    81    27     9     3     1
   256    64    16     4     1
   625   125    25     5     1

 

范德蒙矩阵常用在各种通信系统的纠错编码中,例如,常用的Reed-Solomon编码即以范德蒙矩阵为基础。

 

希尔伯特矩阵

 

 

在MATLAB中,生成n阶希尔伯特矩阵的函数时hilb(n)

>> format rat
>> H=hilb(4)

H =

       1              1/2            1/3            1/4     
       1/2            1/3            1/4            1/5     
       1/3            1/4            1/5            1/6    

其中,rat为转换成有理数的形式输出,有理分式近似值

 

伴随矩阵

 

MATLAB生成伴随矩阵的函数是compan(p),其中p是一个多项式的系数向量,高次幂系数排在前,低次幂系数排在后面。

>> p=[1,-2,-5,6];
>> A=compan(p)

A =

       2              5             -6       
       1              0              0       
       0              1              0 

伴随矩阵特征值的根等于多项式的根

 

帕斯卡矩阵

杨辉三角形表是二项式 (x+y)^n 展开后的系数随自然数 n 的增大组成的一个三角形表。

如4阶帕斯卡矩阵为:

Pascal(4)=

[1 1 1 1

1 2 3 4

1 3 6 10

1 4 10 20]

对比杨辉三角:

以上即为杨辉三角的排列性质

pascal是矩阵实验室(Matrix Laboratory)MATLAB中的函数,利用pascal函数可以在矩阵实验室中方便的得到任意阶帕斯卡矩阵。设A为帕斯卡矩阵,则在MATLAB命令窗口中输入A=pascal(n),n为正整数,可得到阶数为n的帕斯卡矩阵。

Pascal矩阵的第一行元素和第一列元素都为1,其余位置处的元素是该元素的左边元素加上同列中行数小于其的其他元素。例如:a(i,j)=a(i,j-1)+a(i-1,j-1)+……+a(1,j-1)。

 

>> format rat
>> P=pascal(5)

P =

       1              1              1              1              1       
       1              2              3              4              5       
       1              3              6             10             15       
       1              4             10             20             35       
       1              5             15             35             70  
>> inv(P)

ans =

       5            -10             10             -5              1       
     -10             30            -35             19             -4       
      10            -35             46            -27              6       
      -5             19            -27             17             -4       
       1             -4              6             -4              1      </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值