概述
一、矩阵元素的引用方式
1、通过下标来引用矩阵的元素,下标必须为正整数,且要用圆括号括起来
例子(1):
A(3,2)表示A矩阵第3行第2列的元素。
如果要给这个元素赋值200。
注意:这只是改变了A(3,2)这个元素的值,并不会影响到其他的元素
例子(2):
当给出的行列下标超出原来矩阵的行数和列数的时候,在matlab中将自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素,置为0.
2、通过序号来引用
在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素,…,一直到矩阵的最后一列元素。
矩阵元素的序号就是矩阵元素在内存中的排列顺序。
序号与下标是一一对应的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)×m+i
矩阵元素的序号与下标可以利用sub2ind和ind2sub函数实现相互转换。
sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:
D=sub2ind(S,I,J)
D:表示对应下标元素的序号,它的行列数与I和J相同
S:表示要转换的的矩阵的行数和列数,是由行数和列数组成的向量,通常用size函数来获取
I:是要转化矩阵元素的行下标
J:是要转换矩阵的列下标
如果I和J是矩阵,表示要将矩阵中的多个元素的行列下标转换成存储的序号,及I和J的行列数必须相同。
sub2ind函数中第一个参数通过size函数来获取,得到矩阵A的行数和列数,是一个包含两个元素的向量,分别为A矩阵的行数2和列数3。第二个和第三个参数都是用矩阵表示的,两个矩阵对应的元素代表矩阵A 中的某个元素的行下标和列下标,由调用结果可知:行下标为1,列下标为1的元素,在矩阵中是序号为1的;行下标为2列下标为1的元素在矩阵中序号为2;行下标为2列下标为3的元素在矩阵中序号为6;行下标为2列下标为2的元素在矩阵中序号为4.
ind2sub函数:将把矩阵元素的序号转换成对应的下标,其调用格式为:
[I,J]=ind2sub(S,D)
S:表示要转换的矩阵对的行数和列数,是由行数和列数组成的有两个元素的向量
D:序号,函数返回值为序号所对应元素的行下标和列下标
I:对应元素的行下标
j ;对应元素的列下标
[3,3]表示是一个3行3列的矩阵
[1,3,5]表示要求一个3行3列矩阵的第一个,第三个,第五个元素的下标
结果表明:第一个,第三个,第五个元素的下标分别为(1,1),(3,1),(2,2)。
二、利用冒号表达式获得子矩阵
子矩阵是指由矩阵中的一部分元素构成的矩阵。
A(i,:) 第i行的全部元素
A(:,j) 第j列的全部元素
A(i:i+m,k:k+m) 第i~i+m行内且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素
end运算符:表示某一维的末尾元素下标。
A(end,:)表示应用矩阵A 的最后一行的元素。
A([1,4],3:end)表示应用第一行和第四行的从第三列到最后一列的元素。
三、利用空矩阵删除矩阵的元素
空矩阵是指没有任何元素的矩阵。
X是一个空矩阵。如果要将某些元素从一个矩阵中删除,直接将这些元素置为空矩阵
A(:,[2,4])=[]表示赋空矩阵,删除第二列和第四列元素。
四、改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。
y=reshape(x,3,4)表示调用reshape函数,利用向量x建立3行4列的矩阵赋给y
矩阵x为1行12列的矩阵
矩阵y为2行4列的矩阵
A(: ) :将矩阵A的每一列元素堆叠起来,成为一个列向量。
可知A(:)等价于reshape(A,6,1)。
最后
以上就是幸福路人为你收集整理的【MATLAB】矩阵元素的引用的全部内容,希望文章能够帮你解决【MATLAB】矩阵元素的引用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复