Matrix calculation, sum of two rows in each column

I have a matrix d and I want to calculate for every column the sum of each to numbers. The Result should be the result matrix
d= 2 3 7
6 7 8
9 1 5
4 3 5
6 7 8
2 3 6
result= 8 10 15
13 4 10
8 10 14
result=[];
[x,y]=size(d);
for y=1:length(d(:,y))
for x=1:2:length(d(x,:))
[x,y]=size(d);
res=d(x)+d(x+1);
result=[result res];
end
end
I just get a vector consisting of 5. What should I change in the code? Thank you!

1 commentaire

I suggest you debug your code, tracing each step. the variables x and y may not behave as you expect.

Connectez-vous pour commenter.

 Réponse acceptée

d= [ 2 3 7
6 7 8
9 1 5
4 3 5
6 7 8
2 3 6];
result = squeeze(sum(reshape(d',size(d,2),2,[]),2))';

4 commentaires

monmatlab
monmatlab le 20 Déc 2016
Wow.Thank you!
monmatlab
monmatlab le 20 Déc 2016
Modifié(e) : monmatlab le 20 Déc 2016
how should the function be adjusted if I would like to add (before ) to the sum a multiplication with a constant number (3) i.e.: 2+6 *3=20
monmatlab
monmatlab le 20 Déc 2016
Modifié(e) : monmatlab le 20 Déc 2016
d1=d2:2:end,:).*3;
d(2:2:end,:)=d1
result = squeeze(sum(reshape(d',size(d,2),2,[]),2))';
I have managed to do it this way
for 2016b
result = squeeze(sum(reshape(d',size(d,2),2,[]).*[1,3],2))'

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by