Populating a matrix with predetermined values

I have a N x N matrix which I have defined as X, I have another matrix that contains values I would like to populate my matrix X with.
For example, if X is a 3 x 3 matrix and A is the matrix below:
A =
3 15
4 16
5 17
6 18
7 19
How do I populate the matrix X with the values in the second column of A where the first column is the position in the matrix X. i.e I would like the final matrix X to be
X = 0 0 15
16 17 18
19 0 0
Thank you.

 Accepted Answer

X = zeros(N,N);
X(A(:,1)) = A(:,2);
X = X';

3 Comments

Hi James, thank you for that. Would I do the same to populate a 3 x 3 x 3 matrix?
The example you gave works with linear indexing into a 2D matrix. For a 3D array you will have to give a short example of where the elements would go before we can answer how to do it and whether linear indexing will work.
Hi James, Sorry I did not see that you had commented again. I think I have figured it out now. Thank you though.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!