通过下标来引用矩阵的元素。
A(3,2)表示A矩阵第三行第二列的元素。只会改变A(3,2)元素的值,并不会改变其他的值。 如果给出的行下标或者列下标大于原来矩阵的行下标或者列下标,那么自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素置为0,示例如下所示:
通过下标来引用矩阵的元素。
在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列,……,一直到矩阵的最后一列元素。 矩阵元素的序号就是矩阵元素在内存中的排列顺序。
例如下图中,创建了A的两行三列的元素,引用第三个元素:
序号与下边是一一对应的,以m n矩阵A为例,矩阵元素A(i,j)的序号为(j-1) m+i。
矩阵袁术的序号与下标可以利用sub2ind和ind2sub函数实现互相转换。
将矩阵中的指定袁术的行、列下标转换成存储的序号:调用格式为:
sub2ind函数举例:
上图中,首先创建了一个矩阵A,一个5行5列矩阵,size(A)为获得A矩阵的行数和列数,sub2ind第二和第三个参数都是用矩阵表示的,两个矩阵对应的元素代表A中某个元素的行下标和列下标。
行下标为1,列下标为4的元素对应的是0.1419,对应的序号为16。
行下标为2,列下标为5的元素对应的是0.0357,对应的序号为22。
行下标为3,列下标为1的元素对应的是0.1270,对应的序号为3。
即我们输入的坐标(1,4),(2,5),(3,1)在矩阵A中的索引号,意思是A矩阵第1行第4个元素的索引值号为16,为什么是16呢?因为MATLAB是按列搜索的,先搜索第一列,然后搜索第二列…。同理A中的第2行第5个的索引号为22,后面依次类推。
那如何取出A中(1,4),(2,5),(3,1),输入一下代码即可:
将把矩阵元素的序号转换成对应的下表,其调用格式为:
ind2sub和sub2ind这对函数,是互逆的一对函数。ind2sub把数组或者矩阵的线性索引转化为相应的下标;sub2ind则正好相反,将下标转化为线性索引。
ind2sub函数举例:
上图中,首先创建了一个矩阵A,一个5行5列矩阵,size(A)为获得A矩阵的行数和列数,ind2sub第二个参数是用矩阵表示的,矩阵对应的元素代表A中索引值。
索引值为1,元素对应的是0.2760,对应的坐标为(1,1)。
索引值为7,元素对应的是0.9597,对应的坐标为(2,2)。
索引值为18,元素对应的是0.1986,对应的坐标为(3,4)。
那如何取出A中(1,1),(2,2),(3,4),输入一下代码即可:
子矩阵是指矩阵中的一部分元素构成的矩阵。
表示某一维的末尾元素小标。
空矩阵是指没有任何元素的矩阵。
x就是一个空矩阵。
如果需要改变矩阵的形状,reshape(A,m,n)表示矩阵总元素保持不变的前提下,将矩阵A重新排列为m*n的矩阵。
reshape只改变矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。
将矩阵A的每一列元素堆叠起来,成为一个列向量。
A( : )等价于reshape(A,6,1)。
更多回帖