matlab矩阵

简介: 一、矩阵构造简单矩阵的构造:采用方括号[],同行元素用逗号“,”隔开,行与行之间用“;”隔开特殊矩阵的构造函数:ones(n)构建n*n的矩阵,矩阵元素全为1;ones(m,n) 构建m*n的矩阵,矩阵元素全为1...

一、矩阵构造

简单矩阵的构造:采用方括号[],同行元素用逗号“,”隔开,行与行之间用“;”隔开

特殊矩阵的构造函数:

ones(n)构建n*n的矩阵,矩阵元素全为1;

ones(m,n) 构建m*n的矩阵,矩阵元素全为1;

ones(size(A))构建与A矩阵同样大小的矩阵,元素全为1;

zeros(n)构建0矩阵;

zeros(m,n)

zeros(size(A))

-----------------------------------------------------------------------------------------------------

eye(n)单位矩阵

eye(m,n)

eye(size(A))

----------------------------------------------------------------------------------------------------

magic(n)  构建一个n*n的矩阵,其每一行每一列的元素之和都相等


rand(n)构建n*n的矩阵,其元素为0-1之间均匀分布的随机数

rand(m,n)构建m*n的矩阵,其元素为0-1之间均匀分布的随机数


向量:即行向量与列向量

标量:m=n=1,建立的矩阵为标量,任意的1*1的矩阵形式可以表示的单个实数、复数都是标量;

空矩阵:当m=n=0或者m=0,n=0,创建的矩阵成为空矩阵,空矩阵不是0矩阵。

-----------------------------------------------------------------------------------------------------

矩阵旋转与改变维度的函数

fliplr(A):矩阵的每一行均进行逆序排序

flipud(A):矩阵的每一列均进行逆序排序

rot90(A):生产一个由矩阵A逆时针旋转90度而得到的新矩阵

rot90(A,K):生产一个由矩阵A逆时针旋转k*90度而得到的新矩阵

reshape(A,m,n):生成一个m*n的矩阵,其元素以线性索引的顺序从矩阵A中取得,A中的元素必须为m*n个

reshape(A,[m n ...p]):创建一个与矩阵A有相同元素的m*n...*p多维矩阵

>> reshape(a,[2 2 2])
Error using reshape
To RESHAPE the number of elements must not change.
 
>> reshape(a,[1 2 3])

ans(:,:,1) =

     1     4


ans(:,:,2) =

     2     5


ans(:,:,3) =

     3     6
-----------------------------------------------------------------------------------------------------------------------------------


shift(A,n)矩阵的列移动n步,n为正数,矩阵向左移动,n为负数,向右移动

squeeze(A) 返回没有空维的矩阵A

cat(dim,A,B)将矩阵组合A和B组合成一个dim维多维矩阵

permute(A,order)根据向量order来改变矩阵中A中的维数顺序

ipermute(A,order)根据permute的逆变换

sort(A)对一维矩阵或二维矩阵进行升序排序,并返回升序之后的矩阵,当A是二维矩阵时,对矩阵的每一列分别进行排序

sort(A,dim)dim=1时,对列进行排序,当dim=2时,对进行排序

sort(A,dim,mode)mode为ascend时,升序排列,mode为descend时为降序排序

[B,ix]=SORT(A...)   ix为排序后备元素在元矩阵中的行位置或列位置的索引

----------------------------------------------------------------------------------------------------

矩阵的合并

C=[A,B]在水平方向,合并矩阵A和B

C=[A;B]在竖直方向上合并A和B


具有相同高度的两个矩阵可以在水平方向上合并为新矩阵,否则不能。

矩阵行列的删除

要删除矩阵的某行或某列,只要把该行或者列赋予一个穷矩阵[]就可以;

>> A=rand(4)

A =

    0.8147    0.6324    0.9575    0.9572
    0.9058    0.0975    0.9649    0.4854
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419

>> A(2,:)

ans =

    0.9058    0.0975    0.9649    0.4854

>> A(2,:)=[]%:代表所有的行

A =

    0.8147    0.6324    0.9575    0.9572
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419

 冒号“:”代表所有行或者所有列


重构矩阵

转置矩阵:a的转置是a'

>> A'

ans =

    0.8147    0.1270    0.9134
    0.6324    0.2785    0.5469
    0.9575    0.1576    0.9706
    0.9572    0.8003    0.1419


共轭矩阵

a的共轭矩阵为conj(a)

====================================================================

二、矩阵的下标

矩阵的下标索引有两种:双下标索引和单下标索引两种;单下标索引是按照列元素优先,按列进行重排,组成一个一维数组

>> A=magic(4)

A =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

>> A(10)

ans =

    10

矩阵索引表达式

A(:) 将二维矩阵A重组为一维数组,返回数组中第一个元素;

A(j:k)返回上述A(:)的第j到第k个元素

A(:,j):表示返回矩阵的第j列列向量

A(i,:):第i行的行向量

A(:,i:j):表示返回第i列到第j列的列向量

A(i:j,:):

A(:,[1,3]):返回第一列和第三列

A(i:j,k:l)返回第i行到第j行与第k列和第l列列向量交集的子矩阵

>> A(1:3,2:4)

ans =

     2     3    13
    11    10     8
     7     6    12


end关键字

表示该维中最后一个元素

>> A(1,end)

ans =

    13

>> A(4,end)

ans =

     1

 --------------------------------------------

单下标和双下标索引值的转换

sub2ind(size,i,j):将双下标索引转换为单下标索引值,其中size是包含两个元素的数组,一般用size(A)表示,i和j是双下标的行列值,

[i,j]=ind2sub(size,ind):其功能是将单下标转换为双下标

>> sub2ind(size(A),3,4)

ans =

    15

>> ind2sub(size(A),10)

ans =

    10

>> [i,j]=ind2sub(size(A),10)

i =

     2


j =

     3
矩阵运算

>> a=rand(4)

a =

    0.4218    0.6557    0.6787    0.6555
    0.9157    0.0357    0.7577    0.1712
    0.7922    0.8491    0.7431    0.7060
    0.9595    0.9340    0.3922    0.0318

>> b=rand(4)

b =

    0.2769    0.6948    0.4387    0.1869
    0.0462    0.3171    0.3816    0.4898
    0.0971    0.9502    0.7655    0.4456
    0.8235    0.0344    0.7952    0.6463

>> a-b

ans =

    0.1448   -0.0391    0.2400    0.4686
    0.8696   -0.2814    0.3762   -0.3186
    0.6951   -0.1011   -0.0224    0.2605
    0.1360    0.8995   -0.4030   -0.6145

>> a*b

ans =

    0.7528    1.1685    1.4761    1.1261
    0.4698    1.3735    1.1316    0.6369
    0.9122    1.5502    1.8019    1.3514
    0.3731    1.3367    1.1029    0.8321

>> a+1

ans =

    1.4218    1.6557    1.6787    1.6555
    1.9157    1.0357    1.7577    1.1712
    1.7922    1.8491    1.7431    1.7060
    1.9595    1.9340    1.3922    1.0318

>> a*b'

ans =

    0.9927    0.8074    1.4757    1.3333
    0.6428    0.4266    0.7792    1.4685
    1.2674    0.9352    1.7673    1.7289
    1.0927    0.5057    1.2951    1.1547

>> b'

ans =

    0.2769    0.0462    0.0971    0.8235
    0.6948    0.3171    0.9502    0.0344
    0.4387    0.3816    0.7655    0.7952
    0.1869    0.4898    0.4456    0.6463
矩阵的除法 分为:/ 右除和左除\,如果矩阵A和B是标量,则左右除法等价;一般的二维矩阵A、B,当进行A\B运算时,要求A的行数与B的列数相同,当A/B时,要求A列数与B的列数相等。


矩阵的幂次运算

只有当矩阵为方阵时,才可以 "^"

===================================================================

矩阵元素的查找

find() 通常结合关系函数和逻辑函数

ind=find(x):该矩阵查找矩阵X中的非零元素,函数返回这些元素的单下标

[row,col]=find(x):该函数查找矩阵X中的非零元素,函数返回这些元素的双下标


矩阵元素的求和

sum(A)对矩阵A的元素求和,返回由矩阵各列元素的和组成的向量

sum(A,dim)该函数返回在给定的维数dim上元素的和,dim=1时,计算矩阵A各列元素的和,dim=2时,计算矩阵各行元素的和。

矩阵元素的差分

diff(x)  计算矩阵个列元素的查分

diff(x,n)计算矩阵各列元素的n阶差分

diff(x,n,dim)当dim=1时,计算矩阵各列元素的差分,当dim=2时,计算矩阵各行元素的差分

==================================================================================


矩阵结构:矩阵子元素的排列方式

isempty(A)判断矩阵是否为空

isscalar(A)检测矩阵是否是单元素的标量矩阵

isvector(A)检测矩阵是否是只具有一行或者一列元素的一维向量

issparse(A)检测数组是否是系数矩阵

以上函数返回值是1或者0;


矩阵的大小

n=ndims(x)  获取矩阵维数

[m,n]=size(x)  获取矩阵在各维上的长度

n=length(x)  获取矩阵在最长维上的长度

n=nume(x)获取矩阵元素的个数


矩阵的数据类型

isnumeric  检测矩阵元素是否为数值型变量

isreal  实数数值型

isfloat 浮点数值型

isinterger  整型变量

ischar  字符型

islogical  逻辑型

isstruct  结构体型

返回值是逻辑型数据


矩阵占用的内存

whos


相关文章
|
2月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
53 0
matlab--------矩阵重构,重新排列的相关函数说明
|
2月前
|
资源调度
如何在 Matlab 中生成正态分布的整数矩阵
如何在 Matlab 中生成正态分布的整数矩阵
48 0
|
4月前
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
【数值分析】用幂法计算矩阵的主特征值和对应的特征向量(附matlab代码)
|
4月前
|
存储 人工智能 资源调度
Matlab矩阵和数组的操作
Matlab矩阵和数组的操作
MATLAB----矩阵的运算
MATLAB----矩阵的运算
|
5月前
|
算法
MATLAB求解矩阵特征值的六种方法
关于这个特征值的求解一共六种方法 幂法 反幂法 QR方法 对称QR方法 jacobi方法 二分法
304 0
|
5月前
|
存储 JavaScript
MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法
MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法
59 0
MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法
|
3月前
|
移动开发 vr&ar
【MATLAB学习】—矩阵构造和四则运算(二)
【MATLAB学习】—矩阵构造和四则运算(二)
|
6月前
|
存储 人工智能 NoSQL
专题二 MATLAB矩阵处理-2
专题二 MATLAB矩阵处理
64 0
|
6月前
|
机器学习/深度学习
专题二 MATLAB矩阵处理-1
专题二 MATLAB矩阵处理
79 0

热门文章

最新文章