2
$\begingroup$

I have a set of arrays I would like to output to some file ArrayStorage.txt s.t. these arrays could be read-in to a separate notebook on a separate kernel. Is there an easy way to export a set of arrays?

$\endgroup$
6
  • 2
    $\begingroup$ "Is there an easy way to export a set of arrays" — the question seems to imply that existing methods are difficult. Have you tried looking in the help center? (press F1) $\endgroup$
    – rm -rf
    Commented Mar 14, 2013 at 23:42
  • $\begingroup$ @rm-rf Exporting a single array looks pretty simple, but I'm asking about exporting and importing a list of arrays? $\endgroup$ Commented Mar 14, 2013 at 23:44
  • $\begingroup$ @FaintingWater A list of arrays is just a tensor of a higher rank. The question is: For which application do you want to export it? $\endgroup$
    – halirutan
    Commented Mar 14, 2013 at 23:48
  • $\begingroup$ @halirutan For Mathematica. I would like a single file where I can reload all of my variables from another notebook after quitting the kernel? $\endgroup$ Commented Mar 14, 2013 at 23:57
  • 1
    $\begingroup$ Then DumpSave is worth a look. You find it e.g. here in this question mathematica.stackexchange.com/q/121/187 $\endgroup$
    – halirutan
    Commented Mar 15, 2013 at 0:01

2 Answers 2

2
$\begingroup$

If you want to save definitions, then DumpSave is one way to go:

a = RandomReal[1, 1000];
b = RandomInteger[10, 10000];
c = {blub, boing, ups};

DumpSave["tmp/out.mx", {a, b, c}];

Now you can quit the kernel or restart Mathematica and with

<< "tmp/out.mx"

a, b and c have their old values again.

One thing you should note is that files written by DumpSave can only be read on the same type of computer system on which they were written.

$\endgroup$
2
  • $\begingroup$ Always worth noting DumpSave is platform specific. $\endgroup$
    – kale
    Commented Mar 15, 2013 at 1:09
  • $\begingroup$ @kale I added this information. Thanks. $\endgroup$
    – halirutan
    Commented Mar 15, 2013 at 1:43
0
$\begingroup$

Another way was suggested by David Bailey on MathGroup late last year (https://groups.google.com/forum/?fromgroups=#!searchin/comp.soft-sys.math.mathematica/david$20bailey%7Csort:date/comp.soft-sys.math.mathematica/lf-EJeiqDwY/eEF29xJUFZwJ).

Briefly, as an alternative to MX files, try

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

to save, and

str=OpenRead[file,BinaryFormat->True]; 
    If[BinaryRead[str,"TerminatedString"]==magic, 
       expr=Uncompress[BinaryRead[str,"TerminatedString"]]; 
       ]; 
    Close[str];

to read.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.