2011-05-26 8 views
11

En Mathematica, se puede guardar los resultados intermedios/el estado parcial del espacio de trabajo con Save (archivos .m) o DumpSave (archivos .mx).Fast-a-carga alternativa de plataforma cruzada a los archivos MX (Mathematica)

archivos .m son portátiles, pero son muy lentos para cargar (con datos de gran tamaño).

archivos .mx son rápidos en cargar, pero no son portátiles entre plataformas/arquitecturas.

¿hay una manera de guardar expresiones genéricas de Mathematica de forma que su carga sea rápida, y que sean portátiles entre plataformas? ¿Alguien ha experimentado con/puntos de referencia diferentes métodos para hacer esto?

Una posible solución es guardar archivos .m (multiplataforma), luego convertirlos a archivos .mx cuando se comienza a trabajar en una nueva plataforma (una operación de una sola vez). ¿Existe una forma totalmente automática de convertir archivos .m a archivos .mx?

+4

Tema relacionado en el grupo de noticias oficial: ["Get \ [" file.mx "\] no funciona"] (http://groups.google.com/d/topic/comp.soft-sys.math .mathematica/8ErMYTzcBY4/discussion). Respuestas [por David Bailey] (http://groups.google.com/d/msg/comp.soft-sys.math.mathematica/8ErMYTzcBY4/E5Rk9hlgcsMJ) y [por \t Albert Retey] (https: // groups. google.com/d/msg/comp.soft-sys.math.mathematica/8ErMYTzcBY4/nntc64q-xOcJ) son de lo más útil (en mi humilde opinión). –

Respuesta

4
  • De los mensajes Alexey ligados entre sí:

    str=OpenWrite[file,BinaryFormat->True]; 
    
    BinaryWrite[str,Compress[expr],"TerminatedString"]; 
    
    Close[str]; 
    

    Esto no es tan rápido como el uso de un archivo mx, pero aún así es muy rápido.

    David Bailey


    Otra alternativa parece ser WDX (Wolfram datos de Exchange) que estoy usar sin problemas en una variedad de máquinas y que también parece ser portátil, se puede utilizar exactamente igual Los archivos MX, es binario, está documentado y, por lo tanto, consideraría oficialmente compatible. Y es utilizado por la funcionalidad de pacot de datos , así que supongo que es razonablemente eficaz y bien probado en todos los sistemas (una suposición que hasta ahora hace posible la experiencia ).

    (extracto de respuesta por Albert Retey, también de enlace de Alexey)

Pero estos no funcionan como Save/DumpSave no, ya que no guarda el FullDefinition de expr, sólo el valor explícito de expr.

+0

"Pero esto no funciona como lo hace Save/DumpSave". es bastante críptico. ¿Puedes explicar más? –

+0

@bel mejor ahora? –

+0

@Szabolcs gracias por la edición –

Cuestiones relacionadas