MATLAB:Matrix包含特定索引处的另一个矩阵的值

时间:2013-07-07 20:23:32

标签: matlab matrix matlab-guide indices

我需要帮助解决索引问题。指定的问题状态:两个矩阵(x和y)给出坐标以从矩阵A形成矩阵B.产生矩阵B,其包含在x和y的给定坐标处的A的值。 例如:

x = [1 1 1; 2 2 1]
y = [1 2 1; 3 2 4]
%This would read as (1,1),(1,2),(1,1),(2,3),(2,2),(1,4)
% Given matrix: 
A = [6 7 8 9; 10 11 12 13];
%This would give us this answer for B (using the coordinate scheme above): 
B=[6 7 6; 12 11 9];

我猜我需要将find函数与sub2ind函数结合使用,但我并不是百分之百确定如何将其转换为工作代码。我唯一能想到的就是做这样的事情:

B=((x(1),(y(1)), (x(2),y(2)).......

但这只适用于上面定义的矩阵,而不是随机生成的矩阵。我试图在网站上寻找类似的问题,但我找不到一个。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您无法对随机生成的矩阵执行此操作,因为您必须确保矩阵A具有xy值所需的行和列。

在这种情况下,您可以写:

for i=1:length(x(:))
   B(i)=A(x(i),y(i));
end
B=reshape(B,size(x));