建设工商联网站的意义,长安网站建设流程,网站建设外包协议范本,东莞网站设计在哪里讲解视频#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。
MATLAB教程新手入门篇#xff08;数学建模清风主讲#xff0c;适合零基础同学观看#xff09;_哔哩哔哩_bilibili 节选自第3章 3.3.2 矩阵元素的引用
在讲解矩阵元素的引用之…讲解视频可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。
MATLAB教程新手入门篇数学建模清风主讲适合零基础同学观看_哔哩哔哩_bilibili 节选自第3章 3.3.2 矩阵元素的引用
在讲解矩阵元素的引用之前我们先来回顾一下矩阵的表示方式
上方给出了一个m行n列的矩阵对于第i行第j列的元素我们用表示。
因此我们可以使用矩阵元素所处的行(row)和列(column)来进行引用矩阵的某一个元素方式为a(row_ind, column_ind).
这里的row_ind表示要引用的元素的行索引column_ind表示列索引。如果row_ind和column_ind都是一个常数则表示提取矩阵中的单个元素如果row_ind或column_ind是包含有多个元素的向量则表示同时提取多个位置的元素。与向量类似end也可以用来替代最后一个索引通常和冒号法一起使用。
下面我们来举两个例子大家也可以打开本节的配套代码学习“code_3_3_2”。 前面我们学过可以使用length函数和numel函数来计算向量中包含的元素个数。那么怎样计算一个矩阵的大小呢我们可以使用size函数它有两种常见的用法
1size(A)返回一个行向量其元素是A的各维度的长度。若A是一个3×4的矩阵则size(A)返回向量[3 4]如果让[r,c] size(A)那么r 3,c 4。
2size(A,dim)返回在维度dim上的长度。dim 1时表示行dim 2时表示列。若A是一个3×4的矩阵则size(A,1)返回3size(A,2)返回4。
length函数和numel函数也可以用在矩阵上。length函数会返回行和列的较大值对上面的A矩阵length(A)返回4numel函数会返回矩阵中元素的总数numel(A) 返回12
有时候我们需要取出矩阵的某一行或者某一列。以取出矩阵A的第一行为例我们可以使用代码A(1, 1:end)即row_ind取1表示第一行column_ind取1:end表示从1到最后一列的索引。这时候我们可以直接将其简写为A(1, :)逗号后面是列索引的位置加一个冒号就表示取出每一列的元素。同理要取第一列的所有元素我们可以使用代码A(:, 1).
总结 A(:, n) 表示矩阵A的第n列的所有元素。 A(m, :) 表示矩阵A的第m行的所有元素。
练习 前面我们介绍的是对矩阵的双下标进行索引即同时指定行索引和列索引中间用逗号隔开。有同学会问我们能不能使用单个下标对矩阵进行索引呢在MATLAB中是可以的这种单下标的索引方法称为线性索引。
事实上在MATLAB中矩阵的数据在计算机的内存中被存储为单列。以下图为例下面的矩阵虽然显示为 3×3 矩阵但MATLAB在内存中将它存储为单列由它的各列顺次连接而成。例如第2行第2列的元素的线性索引为5第2行第3列的元素的线性索引为8。 我们可以利用线性索引来取出矩阵中的元素尽管这种方式并不那么直观。 另外A(:)命令可以将A中的所有元素按照线性索引的顺序重构成一个列向量。 最后sub2ind和ind2sub函数可用于在矩阵的原始索引(双下标)和线性索引之间进行转换。他们的功能刚好相反sub2ind将矩阵的下标转换为线性索引ind2sub将线性索引转换为下标。
1 ind sub2ind(sz,row,col) 针对大小为 sz 的矩阵返回由 row 和 col 指定的行列下标的对应线性索引 ind。此处sz 是包含两个元素的向量其中 sz(1) 指定行数sz(2) 指定列数。
2 [row,col] ind2sub(sz,ind) 返回数组 row 和 col其中包含与大小为 sz 的矩阵的线性索引 ind 对应的等效行和列下标。此处sz 是包含两个元素的向量其中 sz(1) 指定行数sz(2) 指定列数。
我们举两个例子