Matlab - correlación

   
Vista:

correlación

Publicado por david (1 intervención) el 07/02/2016 18:03:12
Hola,

tengo una matriz de números enteros de 5 columnas y 3000 filas, que he creado a partir de un fichero de texto

Necesito calcular la correlacion de esa matriz.
Lo que hago es :

x=[c{1} (2) c {3} c{4} c{5}]

a=corr(x)

pero me sale un error:

Mixed integer class inputs are not supported.

Error in corr>corrPearson (line 293)
xc = bsxfun(@minus,x,sum(x,1)/n); % Remove mean

Error in corr (line 202)
coef = corrFun(rows,tail,x);

Error in correlacion (line 10)
c=corr(d)


¿Alguien podría decirme que estoy haciendo mal?

Gracias
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 JOSE JEREMIAS CABALLERO

correlación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 08/02/2016 03:42:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>> a=round(10*rand(4,5))
 
a =
 
     7     7     7     3     7
     0     8     2     0     3
     8     7     7     1    10
     9     4     0     8     0
 
>> corr(a)
 
ans =
 
    1.0000   -0.7071    0.2065    0.6653    0.1671
   -0.7071    1.0000    0.5407   -0.9733    0.5690
    0.2065    0.5407    1.0000   -0.5263    0.9585
    0.6653   -0.9733   -0.5263    1.0000   -0.6177
    0.1671    0.5690    0.9585   -0.6177    1.0000


Saludos
JOSÉ JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación en Matlab
jjcc94@hotmail.com
Toda ayuda gratuita es vía foro


http://matlabcaballero.blogspot.com
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

correlación

Publicado por David (1 intervención) el 09/02/2016 19:46:53
Hola Jose,
El problema es que con una matriz cualquiera si qur me calcula la correlacion...pero con una matriz cogida de un fichero de texto no me deja.
Gracias
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

correlación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 10/02/2016 23:08:54
Podrías subir tu fichero texto para ver como está formado los elementos de una matriz.
saludos.

Saludos
JOSÉ JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación en Matlab
jjcc94@hotmail.com
Toda ayuda gratuita es vía foro


http://matlabcaballero.blogspot.com
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

correlación

Publicado por Cristina (14 intervenciones) el 13/02/2016 10:55:58
Hola José,

adjunto un fichero de texto de la misma forma que el mío pero mas pequeño, ya que con este tampoco sale.
A continuación pongo el código que utilizo y el error que me da.

CODIGO QUE UTILIZO:

1
2
3
4
5
6
7
8
9
10
fid = fopen('correla.txt', 'r');
 
C = textscan(fid, '%s %d %d %d %d %d %d %d');
 
fclose(fid);
 
 
d=[C{2} C{3} C{4} C{5} C{6} C{7} C{8}];
 
c=corr(d)



ERROR QUE ME SALE:

Error using bsxfun
Mixed integer class inputs are not supported.

Error in corr>corrPearson (line 293)
xc = bsxfun(@minus,x,sum(x,1)/n); % Remove mean

Error in corr (line 202)
coef = corrFun(rows,tail,x);

Error in Untitled (line 10)
c=corr(d)

Muchas gracias,
Un saludo
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

correlación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 13/02/2016 13:31:37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>> clear
fid = fopen('correla.txt', 'r');
C = textscan(fid, '%s %d %d %d %d %d %d %d');
fclose(fid);
d=[C{2} C{3} C{4} C{5} C{6} C{7} C{8}];
c=corr(double(d))
 
c =
 
    1.0000    0.8660    1.0000   -0.8660    1.0000   -0.9449    0.9449
    0.8660    1.0000    0.8660   -1.0000    0.8660   -0.9820    0.9820
    1.0000    0.8660    1.0000   -0.8660    1.0000   -0.9449    0.9449
   -0.8660   -1.0000   -0.8660    1.0000   -0.8660    0.9820   -0.9820
    1.0000    0.8660    1.0000   -0.8660    1.0000   -0.9449    0.9449
   -0.9449   -0.9820   -0.9449    0.9820   -0.9449    1.0000   -1.0000
    0.9449    0.9820    0.9449   -0.9820    0.9449   -1.0000    1.0000


Saludos .
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
jjcc94@hotmail.com
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación en Matlab.
Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com
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