Matlab:矩阵元素

一、元素的引用

1.通过下标引用矩阵的元素

a(2,1),表示矩阵a第2行第1列的元素。

a(2,1)=0    %将矩阵a第2行第1列的元素的值修改为0

>> a=[1,2,3;4,5,6]

a =

     1     2     3
     4     5     6

>> a(2,1)=0  %将矩阵a第2行第1列的元素的值修改为0

a =

     1     2     3
     0     5     6

注意:如果修改的位置超出了矩阵行列的范围,则扩展矩阵,将扩展后没有被赋值的位置设置为0

>> a(4,5)=8

a =

     1     2     3     0     0
     0     5     6     0     0
     0     0     0     0     0
     0     0     0     0     8

2.通过序号来引用矩阵

matlab中,矩阵元素按列存储,先存第一列,后按列顺序存;所以矩阵元素的序号是按列排序的顺序。

>> a=[1,2,3;4,5,6]

a =

     1     2     3
     4     5     6

>> a(1)

ans =

     1

>> a(2)

ans =

     4

>> a(3)

ans =

     2

>> a(4)

ans =

     5

>> a(5)

ans =

     3

>> a(6)

ans =

     6

序列与下标是一一对应的,以m*n矩阵为例,矩阵元素A(i,j)的序号为(j-1)*m+i

(1)sub2ind函数:

作用:通过元素的行列号,获得元素的序号。

格式:D=sub2ind(S,I,J)

D:序号

S:行数和列数组成的向量,可以用size()函数取得

I:元素行号

J:元素列号

案例1:获取单个序号

%求取a矩阵的第1行第3列的序号
>> d=sub2ind(size(a),1,3) 

d =

     5            %下标为5

>> a(1,3)         %验证是否正确一致

ans =

     3

>> a(5)

ans =

     3

案例2:获取多个序号

>> x=sub2ind(size(a),[1,2;2,2],[1,1;3,2])

x =

     1     2
     6     4

%a(1,1) 为a(1)
%a(2,1) 为a(2)
%a(2,3) 为a(6)
%a(2,2) 为a(4)

(2)ind2sub函数:

作用:把矩阵元素序号转换成对应行列标

格式:[I,J]=ind2sub(S,D)

I:元素行标

J:元素列标

S:行数和列数组成的向量,可以用size()函数取得

D:序号

案例1:获取单个元素行列标

% 获取a(2)的行列标
>> [I,J]=ind2sub(size(a),2)

I =

     2           %元素行标


J =

     1          %元素列标

案例2:获取多个元素行列标

%获取a(1)、a(2)、a(3)、a(4)的行列标
>> [I,J]=ind2sub(size(a),[1,2,3,4])

I =

     1     2     1     2


J =

     1     1     2     2

%a(1) 为 a(1,1)
%a(2) 为 a(2,1)
%a(3) 为 a(1,2)
%a(4) 为 a(2,2)

二、利用冒号表达式获得子矩阵

子矩阵是由矩阵中的一部分元素构成的矩阵

1. A(i,:)  表示第i行的全部元素

>> a(2,:)

ans =

     4     5     6

2. A(:,j) 表示第i列的全部元素

>> a(:,2)

ans =

     2
     5

3. A(i:i+m,k:k+m) 表示第i~i+m行内且k~k+m行内的所有元素

>> a(1:2,2:3)

ans =

     2     3
     5     6

4. A(i:i+m,:) 表示i~i+m行的全部元素

>> a(1:2,:)

ans =

     1     2     3
     4     5     6

5.A(:,j:j+k) 表示j:j+k列的全部元素

>> a(:,2:3)

ans =

     2     3
     5     6

6.and用法,表示么某一维的末尾元素下标

A(end,:),表示A矩阵最后一行所有元素。

>> a(end,:)

ans =

     4     5     6

三、删除矩阵元素

利用空矩阵三次矩阵元素

>> x=[]

x =

     []

案例1:删除a矩阵第1和第3列

>> a(:,[1,3])=[]

a =

     2
     5

四、改变矩阵的形状

reshape(A,m,n),将矩阵A重新排成m*n的二维矩阵,注意元素的顺序序号不变。

%将a矩阵的两行三列变为三行两列的矩阵
>> a=[1,2,3;4,5,6];
>> reshape(a,3,2)

ans =

     1     5
     4     3
     2     6

五、A(:) 将矩阵变为一个列向量,元素顺序序号不变


>> a(:)

ans =

     1
     4
     2
     5
     3
     6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值