1

对于那些超级专家,我想知道您是否看到一种将以下“for”循环转换为更有效的单行向量计算的快速方法。

%Define:
%A size (n,1)
%B size (n,m)
%C size (n,1)

B = [2 200; 3 300; 4 400];
C = [1;2;1];

for j=1:n
     A(j) = B( j, C(j) );
end

所以要清楚,是否有任何替代方法可以将 A 表示为 B 和 C 的函数,而不必编写循环?

4

2 回答 2

2

就在这里:

A = B(sub2ind([n,m], (1:n).', C));
于 2013-10-01T18:30:10.043 回答
0

它取决于函数 A、B 和 C,但这可能有效:

j = 1:n;
A = B(j, C(j));
于 2013-10-01T18:20:12.623 回答