Aptitud Intuitiva

lunes, 7 de junio de 2010

Leer archivos CSV con Scilab



Saludos, en muchos casos es necesario leer archivos en formato CSV, especialmente si los datos son generados por alguna aplicación que solo puede generar archivos de texto plano o por una hoja de cálculo.

Comúnmente los archivos CSV pueden ser leídos por Scripts o pequeños programas para obtener los datos de forma sencilla y ordenada.

En el caso de scilab, es posible leer los archivos CSV de forma sencilla usando la siguiente secuencia de comandos:

-->f=read_csv('nombre_del_archivo')
//esta línea permite leer el archivo y guardar sus datos en scilab como una matriz de String
-->z=evstr(f)
//transforma la matriz f en una matriz de double
-->plot(z)
//grafica la matriz z

En este punto ya la matriz z contiene todos los datos del archivo CSV, esta secuencia solo funciona si el archivo CSV contiene una matriz unidimensional.

Para una matriz bidimensional (con valores para el eje x y para el eje y) se puede usar el script leerCSV2D que está disponible para la descarga, para usar este script se puede usar la siguiente secuencia de comandos:

-->exec 'leerCSV2D.sci'
//Carga el script leerCSV2D.sci en scilab
-->[x,y]=leerCSV2D('ARCHIVO_CSV')
//la matriz x contiene los valores correspondientes al eje x y y para el eje y
//el formato del archivo CSV debe ser x,y Ej: x1,y1 x2,y2....
-->plot(x,y)
//Graficar las matrices

Cualquier duda la puedo aclarar por este medio.

Atentamente:

Ing. Manuel Pérez P.

7 comentarios:

  1. Hola.
    Era justo lo que andaba buscando. Pero segun entiendo en los archivos .csv los datos estan separados por ";" . ¿por que tu has usado la "," ?.
    Todos mis archivos .csv tienen los datos separados por punto y coma.
    Gracias

    ResponderEliminar
  2. Saludos Pedro, el separador en el formato CSV es indiferente, tu lo puedes seleccionar a tu preferencia. Lo importante es indicarle al programa que los va a leer cual es el separador del archivo.
    Por ejemplo, OpenOffice.org (Calc) cuando vas a guardar un archivo en CSV te pregunta que separador piensas usar. Creo que MsExcel también lo hace

    ResponderEliminar
  3. En el caso de Scilab, por defecto, toma la ',' como separador si no le indicas el caracter que usa tu archivo como separador. Si en ves de usar read_csv('archivo.csv') usas read_csv('archivo.csv',';') puedes usar tus archivos csv con separador ';' sin ningún problema. Cualquier duda estoy a la orden. Atentamente:

    Ing. Manuel Pérez P.

    ResponderEliminar
  4. Tengo una pregunta. Tengo muchos archivos planos, donde cada dato esta separado del otro por espacios en blanco y no la coma. ¿Sabes como lo puedo hacer para graficarlos en Scilab?. He buscado información pero no me ha sido posible encontrar.
    Gracias

    ResponderEliminar
  5. Puedes usar la siguiente secuencia de comandos:
    -->f=read_csv('nombre_del_archivo', ' ')
    //esta línea permite leer el archivo y guardar sus datos en scilab como una matriz de String
    -->z=evstr(f)
    //transforma la matriz f en una matriz de double
    -->plot(z)
    //grafica la matriz z

    ResponderEliminar
  6. me podrias ayudar como puedo leer un archivo .SAC es un sismograma te agradeceria bastante

    ResponderEliminar
  7. Saludos SANTY, podrías darme más información referente a ese archivo .SAC, he estado buscando en la red y no he conseguido mucha información. ¿Has hecho la prueba de intentar abrirlo con gedit o wordpad?

    ResponderEliminar

Información muy importante

INFORMACIÓN IMPORTANTE