filling each row of a matrix using values from a vector
    5 views (last 30 days)
  
       Show older comments
    
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 Comment
  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.
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;
More Answers (0)
See Also
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!
