insert ones at given position of matrix

16 views (last 30 days)
I'm stuck on this probably very simple thing - I have this matrix:
rd = zeros(4, 6);
and x is meant to be the position I would like to insert a 1:
x = [3 1 3 1 1 1];
to obtain this:
0 1 0 1 1 1;
0 0 0 0 0 0;
1 0 1 0 0 0;
0 0 0 0 0 0;
Would anybody please be able to help?

Accepted Answer

Stephen23
Stephen23 on 4 Dec 2017
Edited: Stephen23 on 4 Dec 2017
Use sub2ind:
>> rd = zeros(4,6);
>> x = [3,1,3,1,1,1];
>> rd(sub2ind(size(rd),x,1:numel(x))) = 1
rd =
0 1 0 1 1 1
0 0 0 0 0 0
1 0 1 0 0 0
0 0 0 0 0 0

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!