鉴于下面的4x6矩阵A
:创建基于行和列的下标新矩阵
A = [
10 11 12 13 14 15
16 17 18 19 20 21
22 23 24 25 26 27
28 29 30 31 32 33
];
和含有该行和列的下标(r
和c
,分别地)两个变量:
r = [
1 1 1
1 1 1
3 3 3
3 3 3
4 4 4
];
c = [
1 3 6
1 2 4
1 2 6
1 4 5
1 5 6
];
我想创建一个新的5X3矩阵B
这需要从r
每一行和每一列的组合和c
这样的:
B = [
10 12 15
10 11 13
22 23 27
22 25 26
28 32 33
];
注意,元件B(1,1)
通过使用r(1,1)
作为行下标和c(1,1)
作为列下标导出。元B(1,2)
需要r(1,2)
和c(1,2)
为行和列下标。等等...
我可以解决使用嵌套的for循环这个问题,但我工作的实际应用具有非常大的矩阵和这种方法导致显著的瓶颈。有没有更好的(阅读:更快)的选择?
的for
循环以供参考:
B = NaN(size(r,1),size(c,2));
for row=1:size(r,1)
for col=1:size(c,2)
B(row,col) = A(r(row,col),c(row,col));
end
end
这是专用的路要走,但你至少应包括一些代码,使这个问题的答案upvoteworthy。这样它的评论。 – thewaywewalk