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