Matlab中的矩阵寻访与拼接

在Matlab中,寻访矩阵方法主要有:下标寻访、单元素寻访、多元素寻访。
1.下标寻访:
matlab中,矩阵下标表示法与数学表示法相同,使用“双下标”,分别表示行与列,矩阵中的元素都有对应的“第几行,第几列”。
线性下标法:又称单下标法,使用线性下标法时,系统默认矩阵的所有元素按照列从上到下,行从左到右排成一列,只需要使用一个下标索引就可以定位矩中的任何一个元素。
example:创建一个矩阵,用单、双下标进行相应元素的访问,并将双下表转换为单下表。

clear all;
A=[2 5 1 20;3 6 7 22;1 8 9 21;5 1 24 25]
A1=A(4,3)  %使用双下标转换访问A矩阵的第4行第3列的元素
A2=sub2ind(size(A),4,3) %双下标转换为单下标
A3 = A(12)
A =

     2     5     1    20
     3     6     7    22
     1     8     9    21
     5     1    24    25

A1 =
    24
A2 =
    12
A3 =
    24

2.单元素寻访:M=(row,column);
3.多元素寻访:
矩阵多元素的寻访,包括寻访该矩阵的某一行或某一列的若干元素,访问整行、整列元素;访问若干行或若干列的元素以及访问矩阵的所有元素等。
(1).A(e1:e2:e3) 表示取数组或矩阵A的第e1元素到e3元素的所有元素,步长是e2;
(2).A([m n l])表示取数组或矩阵A中的第m、n、l个元素;
(3).A(:,j)表示取矩阵A的第j列全部元素;
(4).A(i,:)表示A矩阵第i行的全部元素;
(5).A(i:i+m,:)表示A矩阵第i~i+m行的全部元素;
(6).A(:,k:k+m)表示取矩阵A的第k~k+m列的全部元素;
(7).A(i:i+m,k:k+m)表示取矩阵A的第i~i+m行内; 并在第k-k+m列中的所有元素;
(8).还可以利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素的下标。

矩阵的拼接:
两个或者两个以上的单位矩阵,按一定的方向进行连接,生成新的矩阵就是矩阵的拼接。矩阵的拼接是一种创建矩阵的特殊方法,区别在于基础元素是原始矩阵,目标是新的合并矩阵。矩阵的拼接分为按照水平方向拼接和按照垂直方向拼接两种。example:对矩阵A和B进行拼接,拼接表达式分别如下:
水平方向拼接:C=[A B] 或 C=[A ,B]
垂直方向拼接:C=[A;B]
注意:矩阵拼接时,必须满足原始矩阵维数对应,如果不满足条件,则拼接将会出错。
在Matlab中,除了使用矩阵拼接符[];还可以使用矩阵矩阵拼接函数拼接矩阵:
(1).cat函数用于按指定的方向拼接矩阵。调用格式为:
C=cat(dim,A,B):按照dim指定的方向连接矩阵A和B,构造出矩阵C。
C=cat(dim,A1,A2,A3,…):表示连接多个矩阵
(2).repmat 函数用于通过输入矩阵的备份拼接出一个大矩阵。其调用格式为:
B=repmat(A,m,n)或B=repmat(A,[m n]):repmat函数建立一个大矩阵B,B是由矩阵A的备份拼接而成的,纵向摆m个备份,横向摆n个备份,B中总共包含mn个A。A为被用来进行复制的矩阵。
B=repmat(A,[m n p…]):repmat函数生成一个多维(m
np…)的数组B.
当A为标量时,生成一个m*n矩阵(矩阵由指定数据类型的A的值组成)。对于某些值,使用其他函数也可以获得同样的结果,example:
qrempat(NaN,m,n)等价于NaN(m,n);
qrempat(single(inf),m,n)等价于inf(m,n,‘single’);
(3)horzcat(A1,A2,…):水平连接多个矩阵A1、A2…参数列表中的所有矩阵都必须有相同的行数。
horzcat(A1,A2,…):水平连接多个矩阵A1、A2…参数列表中的所有矩阵都必须有相同的行数。
horzcat函数连接n维数组是沿第二维(即行)的方向,因此被连接数组的第一维和其他维的大小必须匹配。
(4).vertcat函数用于垂直连接矩阵。其调用格式为:
C=vertcat(A1,A2,…):用于垂直连接多个矩阵A1、A2…参数列表中所有矩阵都必须有相同的列数。
(5).blkdiag函数用于通过矩阵构造一个块对角矩阵。
T=blkdiag(A,B,C,D…):blkdiag函数用输入的矩阵A、B、C、D…构造一个块对称矩阵

参考:《MATLAB GUI程序设计》王广、邢林芳

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值