我想做以下事情:
Y = [1; 2; 3];
X = repmat(1:10, 3, 1);
for i=1:3
X(i,:) = X(i,:) == Y(i);
end
所以我最终得到了
X =
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
有没有办法在没有循环的情况下执行此操作?
答案 0 :(得分:0)
一种解决方案是
Y = [1; 2; 3];
X = repmat(1:10, 3, 1);
Z = X == (Y * ones(1, 10)) ;
但我不确定这是否更快。但它不使用循环:)
编辑:您可以使用repmat而不是* ones(1,10)
答案 1 :(得分:0)