操纵零点矩阵将布尔值放在行中的某个位置

时间:2014-04-10 02:06:36

标签: matlab matrix

所以我有一个大小为m的矩阵X,10被初始化为全零。

然后我有一个大小为m的向量,1包含1到10的数字

我想要做什么(希望在没有循环的单个操作中),对于矩阵X和向量y的每一行,我想在由行中写入的值索引的列中放置一个'1'矢量y。

这是我想要的一个小例子:X = [0 0 0; 0 0 0; 0 0 0];让我们说y = [3; 2; 1]; 然后我希望操作返回X = [0 0 1; 0 1 0; 1 0 0]

你有一个可以轻松做到的命令吗?

1 个答案:

答案 0 :(得分:3)

X(sub2ind(size(X),y',1:numel(y)))=1

X((0:numel(y)-1)*size(X,2) + y')=1