【发布时间】:2013-05-24 04:48:05
【问题描述】:
问题是关于基于向量中包含的数据的矩阵中的批量更改值。
假设我有一个 5x4 零矩阵。
octave> Z = zeros(5,4)
Z =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
还有一个长度等于Z中行数的列向量,即5。向量y中的行对应矩阵Z中的行。
octave> y = [1; 3; 2; 1; 3]
y =
1
3
2
1
3
我想要的是在矩阵 Z 的列中设置 1,其索引作为向量 y 的相应行中的值包含。也就是说,我想要这样的 Z 矩阵:
Z = # y =
1 0 0 0 # <-- 1 st column
0 0 1 0 # <-- 3 rd column
0 1 0 0 # <-- 2 nd column
1 0 0 0 # <-- 1 st column
0 0 1 0 # <-- 3 rd column
有没有简洁的方法?我知道我可以使用 y 上的循环来实现它,但我觉得 Octave 可以有更简洁的方式。我是 Octave 的新手。
【问题讨论】: