Borrar filtros
Borrar filtros

Form a Cumulative sum matrix

2 visualizaciones (últimos 30 días)
Joseph Lee
Joseph Lee el 15 de Nov. de 2017
Respondida: ali fadaie el 24 de Nov. de 2017
S= 10x1300
R=10x1300
z1= S1+R1 x1300
z2=S1+R1+R1+S2+R2 x1300
z3=S1+R1+R1+S2+R2+R2+S3+R3 x1300
.
.
.
z10=S1+R1+R1+S2+R2+R2+S3+R3+.. +R9+S10+R10+R10 x 1300
Result: Form z, a 10x1300 matrix
S & R is a 10x1300 matrix of random numbers
First row of matrix z= First row of S + first row of R
Second row of matrix z= First row of S + first row of R + first row of R + second row of S + second row of R + second row of R
Each addition adds Previous row of R and the next row of S and R
  2 comentarios
M
M el 15 de Nov. de 2017
And what is your question ?
Joseph Lee
Joseph Lee el 15 de Nov. de 2017
Hi, it is stated in title and in text, form a cumulative sum matrix z.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 15 de Nov. de 2017
Editada: Stephen23 el 15 de Nov. de 2017
>> S = randi(9,10,1300);
>> R = randi(9,10,1300);
>> Z = cumsum(S,1)+2*cumsum(R,1)-R;
>> Z(10,:) = Z(10,:)+R(10,:);
This correctly takes into account that each row Z(n,:) only adds row R(n,:) once, except for the tenth row which is a special case because R(10,:) is added twice.
Here is a complete example:
>> R = repmat((1:10).',1,3)
R =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
>> S = repmat((1:3),10,1)
S =
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
>> Z = cumsum(S,1)+2*cumsum(R,1)-R;
>> Z(10,:) = Z(10,:)+R(10,:)
Z =
2 3 4
6 8 10
12 15 18
20 24 28
30 35 40
42 48 54
56 63 70
72 80 88
90 99 108
120 130 140
And checking against the given examples from rows one and three:
>> S(1,:)+R(1,:)
ans =
2 3 4
>> S(1,:)+R(1,:)+R(1,:)+S(2,:)+R(2,:)+R(2,:)+S(3,:)+R(3,:)
ans =
12 15 18

Más respuestas (2)

Andrei Bobrov
Andrei Bobrov el 15 de Nov. de 2017
Editada: Andrei Bobrov el 15 de Nov. de 2017
z = cumsum(S + 2*R) - [R(1:end-1,:); zeros(1,size(R,2))];
  2 comentarios
Stephen23
Stephen23 el 15 de Nov. de 2017
Editada: Stephen23 el 15 de Nov. de 2017
Almost, but does not take into account:
  • row N of R is not counted twice in row N of Z.
  • row 10 of R is counted twice in row 10 of Z.
Andrei Bobrov
Andrei Bobrov el 15 de Nov. de 2017
Thank you Stephen!
I'm corrected my code.

Iniciar sesión para comentar.


ali fadaie
ali fadaie el 24 de Nov. de 2017
Yes it is right

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by