0
有沒有一種方法可以將這段代碼向量化?有沒有辦法在matlab/octave中矢量化這段代碼?
for k=1:K
vec_y(:,k) = y == k;
end
這裏,y
是3000x1
維的向量,並具有元件1
通過10
(表示),使得每個表示具有相等計數作爲每一個其他表示(即,會出現的1
,300
計數300
計數2
等)。
我想要做的就是重寫或只是創建具有相應1
的所有出現以下二進制表示一個新的矩陣 - 10
:
1
將[1;0;0;0;0;0;0;0;0;0]
表示,2
將[0;1;0;0;0;0;0;0;0;0]
,等等上。
我想完全矢量化的代碼,而無需使用for
循環。
其實你不因爲你在使用'bsxfun'需要'repmat'。你可以寫'bsxfun(@eq,1:10,y)' – Suever
謝謝,我會編輯我的答案! –
它運作良好。謝謝!不幸的是我不能投票你的答案,因爲我沒有要求的聲望/點。 :) – Arean