【发布时间】:2013-07-05 03:49:26
【问题描述】:
我需要帮助解决索引问题。分配的问题说明: 两个矩阵(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)).......
但这仅适用于上面定义的矩阵,而不是随机生成的矩阵。我试图在网站上寻找类似的问题,但我找不到。您的帮助将不胜感激!
【问题讨论】:
-
尝试使用循环。有时最简单的方法是最好的。
-
你是对的,
sub2ind在这里会很有帮助,reshape如果你愿意的话。您不需要循环 - 这可以在一行中完成。阅读linear indexing here,看看您是否可以通过ind2sub的输出弄清楚该做什么。
标签: matlab matrix matlab-guide indices