在MATLAB中访问数组元素

时间:2013-01-24 15:35:26

标签: matlab

我试图在matlab中访问数组的一些元素。请考虑以下情况:

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

b = [1 2;2 1]

我想从a访问索引(1,2)和(2,1)的元素。我尝试使用(b)等。但我试过的方法都没有。

如何在不使用循环的情况下在matlab中完成此操作?

如果你能在matlab中为这些基础知识推荐一些好书,那将会很有帮助。

2 个答案:

答案 0 :(得分:1)

首先,使用sub2ind将您的下标转换为索引:

dim1sub = b(:,1);
dim2sub = b(:,2);

ind = sub2ind(size(a), dim1sub, dim2sub)

获得指数后

a(ind)

会给你:

ans =

     2
     4

有关矩阵索引的详细信息,请参阅here

答案 1 :(得分:0)

Matlab允许您访问具有扫描矩阵所有列的线性索引的矩阵。所以在您的情况下(使用3x3)a(2,1)=a(2)a(1,2)=a(4)。 @HebeleHododo提供的答案采用行和列索引并将它们转换为矩阵a的线性索引。请记住,如果要索引不同大小的矩阵,则需要使用不同的线性索引。

此外,有很多在线信息可以帮助您在http://www.mathworks.com/help/matlab/index.html#language-fundamentals学习matlab,或者您可以在命令窗口中输入doc help