从零矩阵构造一个简单的索引矩阵
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
中有效。
假设
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
中有效。