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 comentario

Jos (10584)
Jos (10584) el 20 de Dic. de 2016
I suggest you debug your code, tracing each step. the variables x and y may not behave as you expect.

Iniciar sesión para comentar.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 20 de Dic. de 2016
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 comentarios

monmatlab
monmatlab el 20 de Dic. de 2016
Wow.Thank you!
monmatlab
monmatlab el 20 de Dic. de 2016
Editada: monmatlab el 20 de Dic. de 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 el 20 de Dic. de 2016
Editada: monmatlab el 20 de Dic. de 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))'

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 20 de Dic. de 2016

Comentada:

el 20 de Dic. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by