Rearranging matrix based on coordinates

2 visualizaciones (últimos 30 días)
Elise
Elise el 7 de Jul. de 2015
Comentada: Andrei Bobrov el 7 de Jul. de 2015
I have three matrixes, one containing x values and one for y values of trajectories. I also have a matrix with mass corresponding to these location. I know want to sort the mass values into a new matrix based on the coordinates, filling the empty spots with zeros.
Example.
x = [1, 2, 3; 1, 2, 3; 1, 2, 3]
y = [1, 2, 2; 1, 1, 3; 3, 2, 1]
mass = [1, 12, 0; 2, 5, 6; 0, 1, 3]
new matrix would be A = [1+2,5,3; 0, 12+1, 0; 0, 0, 6]
I have been trying to create a for-loop to create this.
% code
A= zeros(3,3)
for i=1:3
for j=1:3
if x==i & y==j
A(i,j) = mass ( -- not sure how to indicate the point to get mass from)
end
end
end
Thanks!

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 7 de Jul. de 2015
A = accumarray([y(:),x(:)],mass(:))
  2 comentarios
Elise
Elise el 7 de Jul. de 2015
Thanks, that worked out perfectly!
I notice that for this to work all numbers must be integers, is there a similar and easy way if dealing with decimals?
Andrei Bobrov
Andrei Bobrov el 7 de Jul. de 2015
x and y - must be integers

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by