对于那些超级专家,我想知道你是否看到一种快速的方法将以下“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的函数,而不必编写循环?
答案 0 :(得分:2)
是的,有:
A = B(sub2ind([n,m], (1:n).', C));
答案 1 :(得分:0)
它取决于函数A,B和C,但这可能有效:
j = 1:n;
A = B(j, C(j));