Matlab - Sumatoria y promedio de un listado de datos cantidad X

 
Vista:
Imágen de perfil de Manuel

Sumatoria y promedio de un listado de datos cantidad X

Publicado por Manuel (6 intervenciones) el 01/08/2017 16:04:47
Buenos días,

tengo el siguiente inconveniente. Digamos que tengo un listado de datos de longitud X que termina en numero par. necesito sumar ese listado y promediar lo, pero la condición es sumar de cuatro en cuatro datos e ir acumulando su promedio en otro listado.

Eje:

listado1= [1,2,3,4,5,6,7,8...X(par)]

1+2+3+4/4...5+6+7+8/4

listado2=(promedio 1+2+3+4), siguiente linea ( promedio 5+6+7+8), siguiente linea(promedio x+x+x+x)

y asi consecutivamente hasta terminar el listado. como mencione anteriormente, el listado que tengo es de longitud par, el objetivo es arrojar un listado de los promedios de cada cuatro números, se que necesitaríamos un ciclo, estoy intentándolo aun.

muchas gracias por la ayuda y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 01/08/2017 16:31:24
1
2
3
listado1=1:16;
listado2=nanmean(reshape([listado1 nan(1,mod(numel(listado1),4))],4,[]));
disp(listado2)


el hecho de que sea par o impar no importa pero lo ideal sería que fuera divisible por 4 aunque en este código que te adjunto si el último grupo no tiene 4 números sino menos se promedian entre los que sobran, así que con este código la longitud no importa


saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Manuel

Sumatoria y promedio de un listado de datos cantidad X

Publicado por Manuel (6 intervenciones) el 02/08/2017 03:34:31
Señor JESUS DAVID ARIZA ROYETH

muchas gracias por su aporte, ya lo agregue a mi script y lo acomode acuerdo la necesidad, me sirvió a la perfección. realmente jamas se me ocurrió hacerlo sin bucle, no se que hace ese comando pero si ud puede explicarme lo que hizo se lo agradecería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 02/08/2017 03:59:37
reshape reforma el vector a que sea una matriz que tenga 4 filas y el número de columnas necesarias , la función mod calcula el modulo o el residuo de la longitud del vector con respecto a 4 eso hace que si en la última columna faltan números para que sea rectangular la matriz agregue valores nan , y la función nanmean calcula el promedio para cada columna sin tener en cuenta esos nan que se puedan haber agregado en la última columna,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 15
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por Rubén (6 intervenciones) el 13/02/2020 19:37:54
Hola, he probado su código pero solo me funciona cuando el número 16 es divisible entre números cuyo cociente sea 0, por ejemplo 2,4 y
8. Cuando lo modifico para haga la sumatoria y promedio cada 7 filas, al final quedaría el decimoquinto y decimosexto, al hacer esto no me obtiene el promedio entre los dos últimos valores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/02/2020 20:31:56
1
2
3
4
5
6
clear
% web https://www.lawebdelprogramador.com/foros/Matlab/1615890-Sumatoria-y-promedio-de-un-listado-de-datos-cantidad-X.html
 m=23, n=7,
datos=1:m
u=reshape([datos nan(1,n-mod(length(datos),n))],n,[])
promedios=nanmean(u)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
>> sumatoria_promedio
 
m =
 
    23
 
 
n =
 
     7
 
 
datos =
 
     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20    21    22    23
 
 
u =
 
     1     8    15    22
     2     9    16    23
     3    10    17   NaN
     4    11    18   NaN
     5    12    19   NaN
     6    13    20   NaN
     7    14    21   NaN
 
 
promedios =
 
    4.0000   11.0000   18.0000   22.5000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 15
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por Rubén (6 intervenciones) el 14/02/2020 20:25:44
Hola, ya he probado su nuevo código, el cual funciona perfectamente. Noté que solo funciona con datos ordenados horizontalmente aunque eso dependería de las necesidades de cada quien. Muchas gracias, SALUDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/02/2020 20:34:49
1
2
3
4
5
6
7
clear
% web https://www.lawebdelprogramador.com/foros/Matlab/1615890-Sumatoria-y-promedio-de-un-listado-de-datos-cantidad-X.html
 m=29, n=8,
datos=(1:m)'
datos=datos(:)';
u=reshape([datos nan(1,n-mod(length(datos),n))],n,[])
promedios=nanmean(u)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
> sumatoria_promedio
 
m =
 
    29
 
 
n =
 
     8
 
 
datos =
 
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
 
 
u =
 
     1     9    17    25
     2    10    18    26
     3    11    19    27
     4    12    20    28
     5    13    21    29
     6    14    22   NaN
     7    15    23   NaN
     8    16    24   NaN
 
 
promedios =
 
    4.5000   12.5000   20.5000   27.0000



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
>> sumatoria_promedio
 
m =
 
    29
 
 
n =
 
     8
 
 
datos =
 
    0.4116
    0.6026
    0.7505
    0.5835
    0.5518
    0.5836
    0.5118
    0.0826
    0.7196
    0.9962
    0.3545
    0.9713
    0.3464
    0.8865
    0.4547
    0.4134
    0.2177
    0.1257
    0.3089
    0.7261
    0.7829
    0.6938
    0.0098
    0.8432
    0.9223
    0.7710
    0.0427
    0.3782
    0.7043
 
 
u =
 
    0.4116    0.7196    0.2177    0.9223
    0.6026    0.9962    0.1257    0.7710
    0.7505    0.3545    0.3089    0.0427
    0.5835    0.9713    0.7261    0.3782
    0.5518    0.3464    0.7829    0.7043
    0.5836    0.8865    0.6938       NaN
    0.5118    0.4547    0.0098       NaN
    0.0826    0.4134    0.8432       NaN
 
 
promedios =
 
    0.5098    0.6428    0.4635    0.5637




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
>> sumatoria_promedio
 
m =
 
    29
 
 
n =
 
     8
 
 
datos =
 
  Columns 1 through 12
 
    0.7295    0.2243    0.2691    0.6730    0.4775    0.6237    0.2364    0.1771    0.8296    0.7669    0.9345    0.1079
 
  Columns 13 through 24
 
    0.1822    0.0991    0.4898    0.1932    0.8959    0.0991    0.0442    0.5573    0.7725    0.3119    0.1790    0.3390
 
  Columns 25 through 29
 
    0.2101    0.5102    0.9064    0.6289    0.1015
 
 
u =
 
    0.7295    0.8296    0.8959    0.2101
    0.2243    0.7669    0.0991    0.5102
    0.2691    0.9345    0.0442    0.9064
    0.6730    0.1079    0.5573    0.6289
    0.4775    0.1822    0.7725    0.1015
    0.6237    0.0991    0.3119       NaN
    0.2364    0.4898    0.1790       NaN
    0.1771    0.1932    0.3390       NaN
 
 
promedios =
 
    0.4263    0.4504    0.3999    0.4714





Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab
[email protected]


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Sumatoria y promedio de un listado de datos cantidad X

Publicado por Rubén (6 intervenciones) el 19/02/2020 06:42:02
¡Hola! disculpe la tardanza. Muchas gracias por el apoyo. En realidad soy nuevo en el software y me ayudó bastante su aportación. También tengo una duda para agregar horas usando (input). Si uso (datetime(d,'InputFormat','HH:mm:ss') siendo d=[12 12 2012]) me regresa una fecha 12 diciembre de 2012. Y si hago lo siguiente (datetime(d,'InputFormat','HH:mm:ss') siendo d= { " 22:22:22" }) me lo regresa en hora. Mi duda está en que el usuario agregue d.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar