问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

MATLAB中的矩阵索引详解

创作时间:
作者:
@小白创作中心

MATLAB中的矩阵索引详解

引用
1
来源
1.
https://m.elecfans.com/article/5473231.html

矩阵索引是MATLAB中一个核心且强大的功能,它允许用户以灵活且高效的方式操作矩阵数据。本文将详细介绍MATLAB中的各种索引方法,包括向量索引、线性索引和逻辑索引,并通过具体示例帮助读者掌握这些技术。

向量索引

向量索引是最基本的索引方式,用于从向量中选择或修改部分元素。

v = [16 5 9 4 2 11 7 14];

单个值索引

v(3) % 提取第三个元素
ans =
9

向量索引

v([1 5 6]) % 提取第一个、第五个和第六个元素
ans =
16 2 11

冒号表示法

v(3:7) % 提取第三个至第七个元素
ans =
9 4 2 11 7

交换向量的“半部分”

v2 = v([5:8 1:4]) % 提取并交换 v 的两个“半部分”
v2 =
2 11 7 14 16 5 9 4

使用end运算符

v(end) % 提取最后一个元素
ans =
14

算术运算与end

v(2:end-1) % 提取第二个到倒数第二个元素
ans =
5 9 4 2 11 7

提取奇数元素和反转向量

v(1:end) % 提取所有奇数元素
ans =
16 9 2 7
v(end:-1:1) % 反转元素的顺序
ans =
14 7 11 2 4 9 5 16

替换向量元素

v([2 3 4]) = [10 15 20] % 替换 v 的某些元素
v =
16 10 15 20 2 11 7 14

标量扩展

v([2 3]) = 30 % 用 30 替换第二个和第三个元素
v =
16 30 30 20 2 11 7 14

矩阵索引

在对矩阵进行索引时,通常需要使用两个下标:第一个下标表示行,第二个下标表示列。

基本矩阵索引

A = magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

单个元素索引

A(2,4) % 提取第 2 行第 4 列中的元素
ans =
8

向量索引

A(2:4,1:2)
ans =
5 11
9 7
4 14

整行或整列索引

A(3,:) % 提取第三行
ans =
9 7 6 12
A(:,end) % 提取最后一列
ans =
13
8
12
1

线性索引

线性索引是通过单个下标对矩阵进行索引的方式,MATLAB将矩阵元素视为一个长长的列向量。

单个线性索引

A(14) % 提取隐式列向量的第 14 个元素
ans =
8

多个线性索引

A([6 12 15])
ans =
11 15 12

使用sub2ind函数

idx = sub2ind(size(A), [2 3 4], [1 2 4])
ans =
2 7 16
A(idx)
ans =
5 7 1

逻辑索引

逻辑索引使用逻辑数组来表示矩阵下标,适用于许多应用,特别是图像处理。

逻辑表达式索引

A(A > 12)
ans =
16
14
15
13

替换NaN值

B(isnan(B)) = 0

结合find函数

nan_locations = find(isnan(A)); 
A(nan_locations) = 0; 
A = filter2(ones(3,3), A); 
A(nan_locations) = NaN;

通过本文的介绍,读者可以掌握MATLAB中各种索引方法的使用技巧,从而编写更简洁、高效和可读的代码。




© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号