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!

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2015년 7월 7일

1 개 추천

A = accumarray([y(:),x(:)],mass(:))

댓글 수: 2

Elise
Elise 2015년 7월 7일
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?
x and y - must be integers

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2015년 7월 7일

댓글:

2015년 7월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by