Exportar datos de scilab a excel
Sandrine Ellero
-
daba -
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
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
Clotaire
Todo simplemente: xls_open y xls_read ----> todo explicado en la documentación de Scilab
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.
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.
Aquí quizás está la solución: https://digilander.libero.it/_ppricerca/index.html
Si pruebas esta solución, sería genial que compartieras tus resultados en este foro. ¡Gracias! ;)
Si pruebas esta solución, sería genial que compartieras tus resultados en este foro. ¡Gracias! ;)
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
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
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.
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.