我正在尝试在matlab中访问数组的一些元素。考虑下面的场景:
a = [1 2 3;4 5 6;7 8 9]
b = [1 2;2 1]我想从a访问索引为(1,2)和(2,1)的元素。我尝试使用a(b)等,但我尝试的方法都不起作用。
在不使用循环的情况下,如何在matlab中做到这一点?
此外,如果你能推荐一些关于matlab基础知识的好书,那将是很有帮助的。
发布于 2013-01-24 23:46:53
首先,使用sub2ind将下标转换为索引
dim1sub = b(:,1);
dim2sub = b(:,2);
ind = sub2ind(size(a), dim1sub, dim2sub)在有了索引之后
a(ind)将为您提供:
ans =
2
4有关矩阵索引的详细信息,请参阅here。
发布于 2013-01-25 00:42:22
Matlab允许您访问具有线性索引的矩阵,该索引扫描矩阵的所有列。因此,在您的示例中(使用3x3) a(2,1)=a(2)和a(1,2)=a(4)。@HebeleHododo提供的答案采用行和列索引,并将它们转换为矩阵a的线性索引。只要记住,如果你想索引一个不同大小的矩阵,你将需要一个不同的线性索引。
此外,在http://www.mathworks.com/help/matlab/index.html#language-fundamentals或您可以在命令窗口中键入doc help,可以在线获得许多信息来帮助学习matlab
https://stackoverflow.com/questions/14505019
复制相似问题