0

我需要帮助解决索引问题。分配的问题说明: 两个矩阵(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,但我不能 100% 确定如何将其转换为工作代码。我唯一能想到的就是做这样的事情:

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

但这仅适用于上面定义的矩阵,而不是随机生成的矩阵。我试图在网站上寻找类似的问题,但我找不到。您的帮助将不胜感激!

4

1 回答 1

1

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

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

for i=1:length(x(:))
   B(i)=A(x(i),y(i));
end
B=reshape(B,size(x));
于 2013-07-07T20:35:59.133 回答