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

bennn
 
fscanfmat y fprintfmat permiten exportar matrices directamente a un archivo de texto organizado.
1
Clotaire
 
Todo simplemente: xls_open y xls_read ----> todo explicado en la documentación de Scilab
0
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
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
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
allergen
 
Hola,

¿Han resuelto este problema?
0
zorba
 
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! ;)
0
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
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
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
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