从零矩阵构造一个简单的索引矩阵

Construct a simple index matrix from a zero matrix

假设

A = zeros(5,3);
X = [1;2;3;2;1];

我要得到的是:对于A的五行中的每一行,用一个“1”替换一个“0”,替换的位置用向量X表示。所以在这个简单的例子,要得到的矩阵是

 1     0     0    
 0     1     0
 0     0     1
 0     1     0
 1     0     0

有没有一种不涉及行循环的好方法来获得这样的矩阵?

应该这样做:

A(sub2ind([5, 3], (1: 5)', X)) = 1

我现在没有 MATLAB,但它在 Scilab 中有效。