How can I save values in a 2d matrix corresponding to coordinates?

I have a set of values that correspond to certain coordinates on a grid. How can I create a matrix that stores these values in the corresponding location, with blank values for all other points on the matrix?
For example, if I had
values = [1, 5, 22, 13, 8] x = [2, 4, 3, 3, 1] Y = [1, 5, 4, 3, 5]
Where a value of 1 is at coordinates (2,1), value of 5 is at (4,5), etc.
So the result would be something like
0 1 0 0 0
0 0 0 0 0
0 0 13 0 0
0 0 22 0 0
8 0 0 5 0

 Accepted Answer

accumarray([y(:),x(:)],values(:))

3 Comments

Sorry, I oversimplified my example. The X and Y coordinates contain some decimal values.
accumarray([Y(:),X(:)],values(:));
gives me the error
Error using accumarray
First input SUBS must contain positive integer subscripts.
I tried switching from kilometers to meters to get rid of the decimals, but got an out of memory error doing that.
To get rid of the decimals, use the ceil function.
Thanks for your response. I think I may just need to repost with a more complex description of the problem. I actually will need those decimals to perform further calculations after the values are stored in the matrix, so I can't round them off.

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation of 2-D Selections in 3-D Grids in Help Center and File Exchange

Products

Asked:

Bob
on 10 Nov 2014

Edited:

Bob
on 10 Nov 2014

Community Treasure Hunt

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

Start Hunting!