我的問題是:有沒有在MATLAB/Octave中矢量化這個操作的方法?向量化MATLAB/Octave中的for循環
y = %a (m x 1) vector, with every entry in [1, 10]
y2 = repmat(1 : 10, [m 1]);
for i = 1 : m
y2(i, :) = (y2(i, :) == y(i));
end
我的問題是:有沒有在MATLAB/Octave中矢量化這個操作的方法?向量化MATLAB/Octave中的for循環
y = %a (m x 1) vector, with every entry in [1, 10]
y2 = repmat(1 : 10, [m 1]);
for i = 1 : m
y2(i, :) = (y2(i, :) == y(i));
end
bsxfun
既擴大和矢量化計算的一個很好的方式(如果它是有益的,將執行多線程計算)。
m = 10;
y = randperm(m);
y2 = bsxfun(@eq,y,(1:m)')';
正是我需要的。謝謝! –
@JoseRamirez:請考慮接受答案,如果你認爲它有幫助 – Jonas
@macduff:我似乎沒有用'kron'得到正確的結果。 – Jonas
@Jonas,謝謝你的提問,我對我的評論有些倉促。 :-) – macduff