MATLAB 索引问题

标签 matlab indexing matrix

我有一个矩阵,例如

A = [ 1 2 3; 4 5 6; 7 8 9] ;

和一个大小为 1x3 的向量,它指定每一行中的哪个元素是我正在寻找的元素 - 即如果

vector = [ 1 2 1 ]

那么期望的输出是

[ 1 5 7 ]

因为 1 是第 1 行中的第 1 个元素,5 是第 2 行中的第 2 个元素,而 7 是第 3 行中的第一个元素。

我如何实现这一目标?找不到内置函数来执行此操作,这让我很惊讶。

最佳答案

MATLAB 提供了 SUB2IND将行/列下标转换为线性索引的函数:

>> A = [1 2 3; 4 5 6; 7 8 9];
>> idx = sub2ind(size(A),1:3,[1 2 1]);  %# rows: [1 2 3], cols: [1 2 1]
>> A(idx)
     1     5     7

关于MATLAB 索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4842512/

相关文章:

mysql - MySQL中有索引 "hopping"这样的东西吗?

database - 术语 SSTable 和 LSM Tree 之间有什么区别

c - 在 C 中打印矩阵时遇到问题

matlab - 构造由基矩阵的不同幂组成的 block 矩阵

arrays - Matlab中某些索引的所有可能组合的矩阵

matlab - 在脚本中调用matlab脚本

SQL join 1-many 只查询没有重复的父行

通过反向替换求解 Ax = b 的 Python 函数

matlab - 在matlab中绘制天线辐射特性

java - 当我尝试使用 java 包 jdde 时 MATLAB 挂起,但只是在系统重新启动后第一次挂起