Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
user_guide:tutorials:data [2019/02/11 16:42] – ↷ Page moved from user_guide:howto:data to user_guide:tutorials:data oroehrig | user_guide:tutorials:data [2019/02/11 16:43] (current) – restored. oroehrig | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Save and load data in polymake ====== | + | {{page>.:latest:@FILEID@}} |
- | + | ||
- | In polymake there are different ways to save and load data depending on the type and the format of the data. We distinguish between polymake objects (Polytope, Matroid, | + | |
- | + | ||
- | ===== Handling polymake objects ===== | + | |
- | Let us take this nice example object: | + | |
- | > $p = cube(3); | + | |
- | To store polymake objects use the command | + | |
- | > save($p," | + | |
- | This silently overwrites existing files. | + | |
- | + | ||
- | polymake objects that are stored in polymake' | + | |
- | > $p=load(" | + | |
- | If you did not start '' | + | |
- | $p=load(" | + | |
- | TAB completion like in a usual UNIX shell supports you in navigating through the file system. | + | |
- | + | ||
- | + | ||
- | **Note:** If you load a polymake object and compute new properties, these properties will automatically be added to the original XML-file at the end of the session. You can suppress this with the command | + | |
- | > $p-> | + | |
- | called prior to leaving the session (but after the last computation with $p). | + | |
- | + | ||
- | + | ||
- | If you want to store a collection of objects into a single file, there is an [[.tarballs|extra tutorial]] for you. | + | |
- | ===== Handling complex data types ===== | + | |
- | + | ||
- | Apart from the full objects, you can also persistently store arbitrary data structures like matrices or graphs in XML format via '' | + | |
- | > $s=new Set< | + | |
- | > save_data($s, | + | |
- | The description text is optional; it can be an arbitrary text, even stretching over several lines. | + | |
- | + | ||
- | To load such files just type | + | |
- | > $s=load_data(" | + | |
- | ===== Saving visualized objects ===== | + | |
- | Furthermore, | + | |
- | + | ||
- | To save the cube visualized via JReality in a new file called '' | + | |
- | < | + | |
- | To save the cube as a TiKz file named '' | + | |
- | < | + | |
- | + | ||
- | ===== Handling arbitrary files ===== | + | |
- | + | ||
- | Of course, it is also possible to load data from files in other formats. For this purpose use the standard Perl functions for reading and writing. Here is an example:\\ Assume you want to load some points stored in the file points.txt which looks like this: | + | |
- | 1 0 0 0 | + | |
- | 1 1 0 0 | + | |
- | 1 0 1 0 | + | |
- | 1 1 1 0 | + | |
- | 1 0 0 1 | + | |
- | 1 1 0 1 | + | |
- | 1 0 1 1 | + | |
- | 1 1 1 1 | + | |
- | For the sake of the example, let's create this file: | + | |
- | > open(my $f, '> points.txt' | + | |
- | To read this file try the following: | + | |
- | > open(INPUT, "< points.txt" | + | |
- | > while(< | + | |
- | > print $_; | + | |
- | > } | + | |
- | > close(INPUT); | + | |
- | + | ||
- | ''< | + | |
- | > open(INPUT, "< points.txt" | + | |
- | > $matrix=new Matrix< | + | |
- | > close(INPUT); | + | |