从零矩阵

时间:2015-11-20 14:32:16

标签: matlab matrix sparse-matrix

假设

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

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

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

有没有一种很好的方法可以获得这样的矩阵而不涉及循环遍历行?

1 个答案:

答案 0 :(得分:3)

这应该这样做:

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

我现在没有MATLAB,但它适用于Scilab