【发布时间】:2016-10-20 10:47:18
【问题描述】:
我不确定如何表达这个问题,但我认为举个例子会有所帮助。假设我有一个向量 y = [3;1;4;1;6]。我想创建矩阵 Y =
[0 0 1 0 0 0;
1 0 0 0 0 0;
0 0 0 1 0 0;
1 0 0 0 0 0;
0 0 0 0 0 1]
↑ ↑ ↑ ↑ ↑ ↑
1 2 3 4 5 6
其中每一列的元素是一或零,对应于向量中的值。
我发现我可以使用
Y = []; for k = 1:max(y); Y = [Y (y==k)]; end
我可以在没有 for 循环的情况下执行此操作(如果 y 有数千个元素,这种方法是否更有效)?
谢谢!
【问题讨论】: