使用向量的元素来设置矩阵的元素

时间:2014-10-31 23:40:04

标签: matlab matrix

我有一个向量,其元素标识我需要在不同矩阵中设置的索引(每列)。具体来说,我有:

A = 7
    1
    2

我需要创建一个矩阵B,其中包含一些零行数,但A标识的元素除外。换句话说,我想要B:

B = zeros(10, 3); % number of rows is known; num columns = size(A)
B(A(1), 1) = 1
B(A(2), 2) = 1
B(A(3), 3) = 1

我想这样做而不必编写循环。

任何指针都会受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:0)

使用linear indexing

B = zeros(10, 3);
B(A(:).'+ (0:numel(A)-1)*size(B,1)) = 1;

第二行可以与sub2ind等效地编写(可能会慢一点):

B(sub2ind(size(B), A(:).', 1:numel(A))) = 1;