Matlab - Media y desviación estándar que avancen por matriz o vector

   
Vista:

Media y desviación estándar que avancen por matriz o vector

Publicado por chris (2 intervenciones) el 18/03/2016 01:34:34
hola, no se si hay que presentarse, busque donde presentarme pero no encontré un subforo o tema relacionado, en fin, hola.


Debo hacer una función que al entregarle un vector o matriz de una columna, devuelva la media y desviación estándar en una matriz, pero estas deben ir cambiando.

Si por ejemplo el vector tiene 37 datos, debe entregar la media y desviación para los datos del 1 al 5, del 2 al 6, 3 al 7,........, 32 al 37.

la función media y desviación que no varían con el tiempo son:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [t]=media(l);
[a,b]=size(l);
suma=0;
for i=1:a
suma=suma+l(i,1);
end
suma;
t=suma/a;
 
 
function [r]=desviacion(l)
[a,b]=size(l);
media(l);
suma2=0;
for j=1:a
suma2=suma2+(l(j,1)-media(l))^2;
end
suma1=sqrt(suma2/a);
r=suma1;


las que deberían variar pero no me resultan.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function d=media1(l);
[a,b]=size(l);
suma=0;
for i=1:a-5
d(i)=media(l(0+i:4+i,1));
end
 
 
 
function h=desviacion1(l);
[a,b]=size(l);
for i=1:a-5
f(i)=desviacion(l(0+i:4+i,1));
end
h=f;
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

Media y desviación estándar que avancen por matriz o vector

Publicado por chris (2 intervenciones) el 18/03/2016 23:19:54
Lo logre resolver.
Aquí va:

1
2
3
4
5
6
7
8
9
10
function [g,h]=mediadesviacion(l);
[a,b]=size(l);
for i=1:a-5
t(i)=media(l(0+i:4+i,1));
end
g=t';
for j=1:a-5
f(j)=desviacion(l(0+j:4+j,1));
end
h=f';

Pueden reemplazar por mean y std comunes dentro de la función.
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

Media y desviación estándar que avancen por matriz o vector

Publicado por Miguel González (31 intervenciones) el 14/04/2016 20:23:54
1
2
3
4
5
6
7
8
9
10
11
function [g,h]=mediadesviacion(L)
a = length(L);
k = 0:5:a;
for i=1:fix(a/5)
    t(i)=mean(L(k(i)+1 : k(i+1)));
    f(i)=std(L(k(i)+1 : k(i+1)));
end
g=t;
h=f;
 
%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