矩阵和数组
标量:1×1的矩阵
向量:n×1的矩阵或者1×n的矩阵
矩阵:二维数组,其中向量和标量都是矩阵的特例,0×0的矩阵是空矩阵
数组:可以一维数组,二维,多维
一.矩阵的创建
1.直接输入创建
a=[1 2 3;4 5 6]
2.通过语句创建
① from:step:to
该方法可以生成一个行向量,其中:
from:开始值
step:步进(默认为1)
to:结束值
② linespace(a,b,n)和logspace(a,b,n)
这两个方法可以生成一个行向量
其中:a,b,n分别表示开始值,结束值,生成数个数(n默认为50)
linespace(a,b,n)从a到b生成线性的n个数据(即间隔相等)
例如:linespace(1,5,3) % [1,3,5]
logspace(a,b,n)从10a和10b之间按照对数等分成n个元素
例如:logspace(0,2,3) %[1,10,100]
3.通过函数生成特殊矩阵
| 函数名 | 功能 |
|---|---|
| zeros(m,n) | 产生m×n的全0矩阵 |
| ones(m,n) | 产生m×n的全1矩阵 |
| rand(m,n) | 产生均匀分布的m×n随机矩阵,元素取值范围为0.0~1.0 |
| randn(m,n) | 产生正态分布的m×n随机矩阵 |
| magic(m,n) | 产生N阶魔方矩阵(矩阵的行、列和对角线上的元素的和相等) |
| eye(m,n) | 产生m×n的单位矩阵 |
| true(m,n) | 产生m×n的逻辑矩阵,全为true |
| false(m,n) | 产生m×n的逻辑矩阵,全为false |
二.矩阵的访问
1.单下标访问
在matlab中单下标就是把一个矩阵的所有列从左到右连接成一个一维长列,然后对元素位置进行编号。
假设矩阵A为
| 12 | 43 | 72 |
|---|---|---|
| 22 | 51 | 83 |
| 33 | 62 | 92 |
则矩阵A编号
| 1 | 4 | 7 |
|---|---|---|
| 2 | 5 | 8 |
| 3 | 6 | 9 |
单下标访问
A(3) %得到33
2.双下标访问
对于矩阵A(r,c),其中
r是row,代表行
c是column,代表列
3.子块矩阵访问
对于矩阵a
| 1 | 2 | 0 |
|---|---|---|
| 3 | 4 | 0 |
| 5 | 6 | 9 |
全下标方式
① a([1 3],[2 3]):取行数为1、3,列数为2、3的元素构成子矩阵
| 2 | 0 |
|---|---|
| 6 | 9 |
② a(1:3,2:3):取行数为1 ~ 3,列数为2 ~ 3
| 2 | 0 |
|---|---|
| 4 | 0 |
| 6 | 9 |
③ a(:,3): ’ : '代表取所有行,这里取1~3行,3列
| 0 |
|---|
| 0 |
| 9 |
单下标方式
a([1 3;2 6]):取单下标为1,3,2,6的元素构成子矩阵
| 1 | 5 |
|---|---|
| 3 | 6 |
三.矩阵的赋值
会访问就会赋值
😄
四.矩阵的删除
赋值成空矩阵[]就行
五.大矩阵的生成
两个大小相同的矩阵A,B
左右拼接
[A B]
上下拼接
[A;B]
repmat(A,m,n) %以矩阵A为一个元素生成m×n的大矩阵
六.矩阵的翻转和变形
| 函数名 | 功能 |
|---|---|
| triu(X) | 产生X矩阵的上三角矩阵,其余元素补0 |
| tril(X) | 产生X矩阵的下三角矩阵, 其余元素补0 |
| flipud(X) | 使矩阵X沿水平轴上下翻转 |
| fliplr | 使矩阵X沿垂直轴左右翻转 |
| flipdim(X,dim) | 使矩阵X沿特定轴翻转。dim=1,按行维翻转;dim=2,按列维翻转 |
| rot90(X) | 使矩阵X逆时针旋转90度 |
| reshape(X,m,n) | 将X的行列排列成m行n列。元素的单下标是不变的 |
七.矩阵信息获取
| 函数名 | 功能 |
|---|---|
| size() | 返回矩阵大小,m×n |
| ndims | 返回矩阵的维度(列数) |
| length | 返回行数 |
| numel | 返回元素个数 |
八.矩阵的运算
①矩阵的函数运算
| 函数名 | 功能 |
|---|---|
| det(X) | 计算方阵行列式 |
| rank(X) | 求矩阵的秩,得出的行列式不为0的最大方阵边长 |
| inv(X) | 求矩阵的逆阵,当方阵X的det(X)不等于0,逆矩阵才存在。X和X-1相乘为单位矩阵 |
| [v,d]=eig(X) | 计算矩阵特征值和特征向量。如果方程Xv=vd存在非零解,则v为特征向量,d为特征值 |
| diag(X) | 产生X矩阵的对角阵 |
| [l,u] = lu(X) | 方阵分解为一个准下三角方阵和一个上三角方阵的乘积。l为准下三角矩阵,必须交换两行才可以成为真的下三角阵 |
| [q,r] = qr(X) | m×n阶矩阵X分解为一个正交方阵Q和一个与X同阶的上三角矩阵R的乘积。方阵Q的边长为矩阵X的n和m中的较小着,且其行列式值为1 |
②矩阵和数组的算术运算
(1)矩阵和数组的加减运算
1.矩阵加减表达式分别为"A+B",“A-B”。
A和B矩阵必须是大小相同才可以进行加减运算如果A、B有一个是标量,则该标量与矩阵的每个元素进行运算。
2.矩阵的乘法运算表达式为"A*B"
矩阵相乘符合线性代数中矩阵相乘,
数组相乘是对应元素两两相乘,数组的尺寸完全一致
③矩阵和数组的转置
| 矩阵转置 | 数组转置 |
|---|---|
| A’表示矩阵A的转置,如果A为复数矩阵,则为共轭转置 | A.'表示数组A的转置,如果数组A为复数矩阵,则不是共轭转置 |
④矩阵和数组的数学函数
| 函数名 | 含义 |
|---|---|
| abs | 绝对值或者复数模 |
| sqrt | 平方根 |
| real | 取实部 |
| imag | 取虚部 |
| conj | 复数共轭 |
| sin | 正弦 |
| asin | 反正弦 |
| sinh | 双曲正弦 |
| cosh | 双曲余弦 |
| tanh | 双曲正切 |
| rat | 有理数近似 |
| mod | 取余 |
| round | 四舍五入到整数 |
| fix | 向最接近0取整 |
| floor | 向下取整 |
| ceil | 向上取整 |
| sign | 符号函数 |
| rem | 求余数留数 |
| exp | 自然指数 |
| log | 自然对数 |
| log10 | 以10为底的对数 |
| pow2 | 2的幂 |
| bessel | 贝塞尔函数 |
| gamma | 伽马函数 |
本文详细介绍了MATLAB中矩阵的创建、访问、赋值、删除、大矩阵生成、翻转和变形、信息获取以及矩阵运算,包括直接输入创建、通过语句创建、特殊矩阵生成、单下标和双下标访问、子块矩阵访问、矩阵的赋值、删除、拼接、翻转和矩阵的各种算术运算等核心概念。
3981

被折叠的 条评论
为什么被折叠?



