MATLAB矩阵的建立与访问

1、普通矩阵的建立

      不管是任何矩阵(向量),都可以直接按照行方式输入每个元素:同一行的元素用逗号或者用空格符来分割,且空格个数不限;不同的行用分号分割。所有的元素都处于一方括号[]内。比如:

       >>Matrix_2D=[1,2,3;4,5,6;7,8,9]    %生成一个3×3的二维矩阵

       用size() 函数可以计算一个矩阵的行数和列数。

2、创建三维数组的三种方法

    (1)使用下标创建三维数组  

在Matlab命令框中输入以下代码可以创建简单的三维数组:

for i=1:2

for j=1:2

for k=1:2

A(i,j,k)=i+j+k;

end

end

end

     (2)使用低维数组创建三维数组

可以先创建一个二维数组,然后再通过第三维数组与其关系生成第三维数组;

D2=[1,2,3;4,5,6;7,8,9];

D3(:,:,1)=D2;

D3(:,:,2)=2*D2;

D3(:,:,3)=3*D2;

      (3)使用创建函数创建三维数组

使用cat命令来创建高维数组。cat命令:C=cat(dim,A1,A2,A3,A4......)  其中dim表示的是创建数组的维度,A1,A2,A3,A4表示的是各维度上的数组。

D2=[1,2,3;4,5,6;7,8,9];

C=cat(3,D2,2*D2,3*D2);

3、矩阵的访问

访问矩阵中的元素有两种方式,一种是根据下标访问,另一种是根据序号访问。

以二维矩阵为例,根据下标访问时,将需要访问的矩阵元素的行列坐标写在圆括号内。比如:A(2,3)   

可以使用“:”来访问所有坐标,或用end访问末尾坐标;例如:

矩阵访问一律用(),元胞数组用{}
a(i,j)%第i行第j列队元素
a(:,j)%第j列的所有元素
a(2:end,j)%第j列中第2行到最后一行的元素
a(:,3:5)%第3〜5列的所有元素
a(x)%第x个元素(x为从最左边第1列开始编号,若a为4行5列,则a(10)==a(2,3))

另一种是根据序号来访问矩阵元素,这种访问方式是将矩阵先转换为一维的向量,然后根据每个元素在该向量中的序号来访问元素,书写时将需要访问的元素序号写在圆括号内即可,如A(10)  ;  也可以使用“:”访问所有或者部分序号,用end访问末尾序号。在MATLAB中所有二维转换为一维的情况都是按照列优先的顺序来访问的。

两种方式的转换:

sub2ind函数

sub2ind is used to determine the equivalent single index corresponding to a given set of subscript values.

二维矩阵: IND = sub2ind(SIZ,I,J)

SIZ是转换矩阵的大小,一般用size函数求得;

I是下标中的行数,J是下标中的列数;

返回值IND是转化后对应的序列号(索引号);

ind2sub函数

ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值