How to sum the results of a loop?

1 view (last 30 days)
vinicius lanziotti
vinicius lanziotti on 7 Dec 2017
Edited: James Tursa on 7 Dec 2017
I need to sum the values of D and put the result in a single variable...
How can I do this?
x=[1 2 3 4 5];
d= [0 10 20 30 40;
10 0 50 60 70;
20 50 0 80 90;
30 60 80 0 100;
40 70 90 100 0];
for i=1:length(x)-1
j=i+1;
D=d(x(1,i),x(1,j))
end
>> test
D =
10
D =
50
D =
80
D =
100

Answers (1)

James Tursa
James Tursa on 7 Dec 2017
Edited: James Tursa on 7 Dec 2017
E.g., for generic x
s = sub2ind(size(d),x(1:end-1),x(2:end));
Dsum = sum(d(s));
If you always wanted to sum the super-diagonal, then
Dsum = sum(diag(d,1));

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!