假设
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
有没有一种很好的方法可以获得这样的矩阵而不涉及循环遍历行?
答案 0 :(得分:3)
这应该这样做:
A(sub2ind([5, 3], (1: 5)', X)) = 1
我现在没有MATLAB
,但它适用于Scilab
。