前言
代码粘贴后并不好看,故使用图片粘贴如下。
代码部分是我在MATLAB里面加的注释版本(使用版本为MATLAB R2022a)
一、矩阵的索引(提取单元素)
我们知道矩阵是有很多数字组成的,那么每个数字都有其对应的位置。
如下
我们创建一个矩阵A
这是一个两行三列的矩阵,其中每个数字都可以对应一个坐标
例如:0.8147对应 (1,1),0.9134对应(2,2),0.0975对应(2,3)
那我们也就可以利用坐标完成对矩阵的索引
矩阵的索引使用如下
我们想提取矩阵中第二行第三列的元素作为新的变量x,代码如下
x=A(2,3)
![]()
这里我们补充一个知识点
我们用end可以作为关键字代表最后一个元素,
x=A(end,3); %% 提取最后一行第三个元素
x=A(end-1,end-2) %可以结合运算符来计算
![]()
二、提取一行或是一列
现在我们增加一个冒号的用法,便可以实现提取一行或是一列
数组里我们知道,ans=1:2表示
我们将这种方法加到矩阵的索引中来就是
代码:
B=rand(10)
z=B(4:5,6:10)
这里我们可以清楚的看到第4行第5行的6到10列被提取出来了
我们提取某行某列用法就更简单化了,一个单独的冒号代表所有行或列
提取第1,2列,代码: z=B(:,1:2)
提取1到2行:z=B(1:2,:)
![]()
三、单索引值的使用
上面我们知道我们都是索引的具体坐标或是行列,我们这里想提取单独的向量,就不得不使用到单索引值的用法。
我们重新生成矩阵A
接着我们用单索引值
a=A(5)
这里我们就知道了单索引值的用法,它是
计算机按照列的顺序从左往右遍历每一列(每一列从上到下)的第几个元素即是
再举一个例子:a=A(8)
当然我们可以将矩阵化为数组
b=A(end-3:end)%同样的我们使用冒号进行范围索引
![]()
我们也可以逐个索引
b=[A(1),A(2),A(3)]
![]()
最终附本文代码(含注释版):
clc,clear;
%% 数组的索引
%% 用 y=A(2,3)来快速提取矩阵的元素,例如
A=rand(2,3);
x=A(2,3);%提取第2行第3列的元素
%% 用 MATLAB 关键字 end 作为行或列索引来引用最后一个元素,例如
x=A(end,3); %% 提取最后一行第三个元素
x=A(end-1,end-2) %可以结合运算符来计算
%% 用之前学过的数组的创建方法,我们可以实现提取矩阵的某一行或某一列
z=B(:,1:2)%提取第一列和第二列
z=B(1:2,:)
%推广,我们使用:范围引用可以实现索引一个范围的值
B=rand(10);
z=B(4:5,6:10);
%% 单索引值的使用,
A=rand(5)
a=A(5) %计算机按照列的顺序从左往右遍历每一列的第几个元素即是
%同样的我们使用冒号进行范围索引
b=A(end-3:end)
%接着我们也可以尝试逐个索引
b=[A(1),A(2),A(3)]
补充一点小知识:MATLAB里%%+空格+注释会出现分割线,效果跟我最上面的图片一样。