我需要帮助解决索引问题。指定的问题状态:两个矩阵(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)).......
但这只适用于上面定义的矩阵,而不是随机生成的矩阵。我试图在网站上寻找类似的问题,但我找不到一个。非常感谢您的帮助!
答案 0 :(得分:1)
您无法对随机生成的矩阵执行此操作,因为您必须确保矩阵A
具有x
和y
值所需的行和列。
在这种情况下,您可以写:
for i=1:length(x(:))
B(i)=A(x(i),y(i));
end
B=reshape(B,size(x));