Matlab - cell a numeros

   
Vista:

cell a numeros

Publicado por alvaro (23 intervenciones) el 26/03/2014 03:53:58
Tengo un vector de tipo cell de 5x1 :

1
2
3
4
5
6
7
A =
 
    '37'
    '38'
    '39'
    '40'
    '41'

y necesito convertirlo en un vector de numeros:

B= [37 38 39 40 41]

de manera de poder realizar operaciones entre ellos, ya que si lo hago como está me resulta esto:

1
2
>> A(1)+A(2)
Undefined function 'plus' for input arguments of type 'cell'.


como lo puedo hacer???
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 Jorge De Los Santos

cell a numeros

Publicado por Jorge De Los Santos (212 intervenciones) el 26/03/2014 05:45:17
Hola Álvaro...

Utiliza la siguiente instrucción:

1
A=str2num(cell2mat(A));


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

cell a numeros

Publicado por alvaro (23 intervenciones) el 27/03/2014 01:32:01
Muchas gracias por la ayuda, pero me aparece el siguiente error:

>> A=str2num(cell2mat(A));

Error using cell2mat (line 46)
All contents of the input cell array must be of the same data type.

Los vectores que tengo q analizar son de la siguiente manera, lo primero que deberia hacer es eliminar los "NaN" y luego realizar lo que me propones, sabes como hacerlo?

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
A =
 
    '40'
    '41'
    '42'
    '43'
    '44'
    '45'
     .
     .
     .
    '3756'
    '3757'
    '3758'
    '3759'
    '3760'
    '3761'
    '3762'
    '3763'
    '3764'
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
    [NaN]
 
.
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 Jorge De Los Santos

cell a numeros

Publicado por Jorge De Los Santos (212 intervenciones) el 27/03/2014 08:45:36
En ese caso, creo que lo más sencillo sería iterar sobre el cell array e ir comprobando elemento a elemento si es de tipo numérico y/o NaN y guardarlo en un nuevo vector, algo parecido a esto:

1
2
3
4
5
6
7
n=1;
for k=1:length(A)
    if ~isnan(A{k})
        V(n)=A{k};
        n=n+1;
    end
end


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