# filling each row of a matrix using values from a vector

3 views (last 30 days)
Nora Khaled on 30 Jul 2019
Commented: Nora Khaled on 30 Jul 2019
Hello !
I want to fell certine element in a matrix in this way:
for example matrix x=[0 0 0 0 ; 0 0 0 0 ; 0 0 0 0 ];
and then I have vector u= [1;4;3;3]
I want to use the number of in u to make x like this x=[1 0 0 0; 0 0 0 1; 0 0 1 0; 0 0 1 0];
since the first row of u contain 1 then the first row of x in the first colunm chnage to one.
and the 2nd row = 4 then x(2,4)=1.. and so one.
is there a way to do this with out loops ?
##### 1 CommentShow -1 older commentsHide -1 older comments
James Tursa on 30 Jul 2019
Can we assume x starts with the proper size? In this case a 4x4 instead of the 3x4 shown.

Sign in to comment.

### Accepted Answer

James Tursa on 30 Jul 2019
Assuming x starts as a 4x4 matrix (instead of a 3x4 matrix):
x(sub2ind(size(x),(1:numel(u))',u)) = 1;
##### 1 CommentShow -1 older commentsHide -1 older comments
Nora Khaled on 30 Jul 2019
Thank you!
Although the assumption is not applicable in my case however this code seems to work.

Sign in to comment.

### Categories

Find more on Multidimensional Arrays 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!