Exportar datos de scilab a excel

Sandrine Ellero -  
 daba -
¡Hola!

No logro exportar correctamente una matriz de Scilab a Excel.

Tengo una matriz de 12*90 en Scilab y la exportación a Excel mediante el comando
write('monfichier.xls',Matriceàexporter,'(90(f10.2))')
me genera una matriz en la que los 90 primeros valores de la primera fila de mi matriz están todos almacenados en la primera celda de Excel.

Me gustaría tener un valor por celda, de hecho. ¿Alguien conoce el formato Fortran adecuado o alguna otra solución?

Gracias de antemano,
Sandrine

8 respuestas

  1. bennn
     
    fscanfmat y fprintfmat permiten exportar matrices directamente a un archivo de texto organizado.
    1
    1. Clotaire
       
      Todo simplemente: xls_open y xls_read ----> todo explicado en la documentación de Scilab
      0
  2. Armojax
     
    Hola Sandrine,

    No conozco nada de Scilab. Supongo que este software te proporciona un archivo que, aunque lo llames "monfichier.xls", tiene muchas probabilidades de estar en formato de texto.

    Prueba esto:

    Antes de dárselo a Excel, cámbiale el nombre y cambia su extensión a ".txt".
    Luego, ábrelo con el Bloc de notas o Wordpad. Normalmente, deberías tener el texto en claro y ver si los 90 valores de una línea están bien separados por un marcador, y cuál es el separador (coma, punto y coma, tabulación, ...).

    Después, abre Excel. En Excel, haz "Abrir" y selecciona tu archivo de texto.
    Excel te hará las preguntas para el formato de tus datos.

    Puede ser que:
    - el problema no sea ese y que esté completamente equivocado,
    - que si tus campos son números decimales, debas modificar tus parámetros para la elección del separador decimal (punto o coma).

    Buena suerte, y si no es eso, vuelve.

    Armojax.
    0
    1. yassine
       
      Hola a todos,

      aquí, estoy comenzando con Scilab y no conozco el comando que me permite importar un archivo de Excel en Scilab para mostrar los puntos del nubes de puntos.


      Gracias de antemano.

      Yassine.
      0
    2. souhir
       
      Buenas noches,
      también estoy enfrentando el mismo problema, me pregunto si has logrado encontrar una solución, te estaría agradecida
      Gracias
      Souhir
      0
  3. Valeck
     
    Hola a todos,

    También estoy trabajando en Scilab en este momento y necesito exportar mis datos a Excel. Aquí están los comandos que he escrito:

    entrada='ubicación de tu archivo'; --> ejemplo 'D:\Documents and Settings\...etc'
    salida='ubicación de tu archivo';
    debit='ubicación de tu archivo';

    fprintfMat('entrada.xls',B1); --> escribe mi matriz B1 en el archivo entrada
    fprintfMat('salida.xls',B2); --> escribe mi matriz B2 en el archivo salida
    fprintfMat('debit.xls',B3); --> escribe mi matriz B3 en el archivo debit

    Ahora no tengo ningún problema porque mis matrices tienen solo una fila y varias columnas (depende de mis datos). Y funciona bien.
    He intentado resolver tu problema Sandrine intentando exportar una matriz 30x30, por ejemplo. Y ahí sí hay un problema, pero no para todos los datos. La primera columna contiene solo un valor por celda. La segunda agrupa, desafortunadamente, 4 columnas. Luego, vuelve a tener un valor por celda.
    No entiendo mucho, me he quebrado la cabeza sobre esto hace un rato, pero ahora ya no puedo. Volveré a intentarlo mañana ^^

    Sin embargo, tengo otro problema que quizás puedan resolver. Al exportar los datos sobre el debit, solo obtengo ceros en Excel porque exporta solo 6 cifras después de la coma. Mis debits están en 10^(-10).
    ¿Tienen alguna solución para aumentar el número de cifras significativas exportadas a Excel??

    Gracias de antemano, volveré a publicar si encuentro una solución a tu problema

    Valeck
    0
  4. philippe
     
    Hola,

    Lo mejor es convertir sus datos en matrices de cadenas de caracteres (función string en Scilab), una matriz que puede tener varias columnas. Un ejemplo básico:

    M=rand(100,2);//una matriz de reales
    texto=['x', 'y'; string(M)];//una matriz de cadenas de caracteres
    excel=[];//el contenido del archivo excel
    n=size(texto,1);//número de líneas de texto
    for i=1:n
    excel=[excel; strcat(texto(i,:), ';')];//escritura en formato csv con ';' como separador
    end
    mputl(excel,'ensayo.xls');//escritura en el archivo ensayo.xls

    es en el bucle for donde concateno los elementos de cada línea de mi matriz de cadenas de caracteres. La función strcat(matriz,separador) realiza la concatenación de los elementos de "matriz" intercalando "separador" entre ellos, lo que permite transformar fácilmente sus matrices en formato cvs (comma separated values) completamente legible por excel (o calc, por cierto).

    Philippe.
    0
  5. philippe
     
    Se me olvidaba, para cambiar el formato de visualización de los números reales puedes usar la función format. Por ejemplo, format('v',20) forzará la visualización de los reales con 18 cifras (bueno, normalmente el cero máquina está en el orden de 10^(-16) así que es un poco excesivo).

    Philippe.
    0
  6. daba
     
    hola, tengo el mismo problema de hecho debo importar datos en y luego exportar una matriz para poder explotarla adecuadamente... ¿alguien tendría la solución a mi problema?
    0