我有一个长度为n的向量y。y(i)是1到m之间的整数。是否有一种更简单的方法将y转换为n x m的逻辑矩阵yy,其中yy(i, j) = 1如果y(i) = j,否则为0?以下是我的做法:
% If m is known (m = 3 here), you could write it out all at once
yy = [y == 1; y== 2; y == 3];
yy = reshape(yy, n, 3);
或者% if m is not known ahead of time
yy = [ y == 1 ];
for i = 2:m;
yy = [ yy; y == i ];
end
yy = reshape(yy, n, m);
bsxfun
是 Matlab 中的多线程函数之一。因此,它很可能比您的解决方案更快。 - Jonas