Import i eksport danych

Możliwości Mathematici pod tym względem są spore, choć bardzo specyficzne. Rozpatrzmy najprostszy przypadek. Poniżej dane. Jest to tablica o dwu kolumnach

data={{0.055,90},{0.091,97},{0.138,107},{0.167,124},{0.182,142},{0.211,150},{0.232,172},{0.248,189},{0.284,209},{0.351,253}};

data//MatrixForm

Polecenie zapisu na dysku wygląda tak jak poniżej. Plik zostanie zapisany w „bieżącej kartotece”. Pierwszy parametr to nazwa, drugi — obiekt, który eksportujemy, trzeci — format danych. Powinien on być “Data” gdy chcemy wyeksportować dane numeryczne w postaci ASCII (czyli czytelnej). Rozszerzenie powinno być dat dla tego typu.

Export["a.dat",data,"Data"];

Polecenie FilePrint czyta zawartość pliku i wyprowadz na ekran.

FilePrint["a.dat"]

Takna prawdę obiektem może być (prawie) dowolne wyrażenie.

Export["b.dat",Transpose[data],"Data"];

FilePrint["b.dat"]

Funkcja Import czyta plik, starając się (na podstawie rozszerzenia) zidentyfikować typ danych. więc wszystko powinno być OK.

data1=Import["b.dat"]

data1//MatrixForm

Funkcja DeleteFile pozwala „posprzątać” czyli skasować zbędne pliki.

DeleteFile[{"a.dat","b.dat"}]

FilePrint["a.dat"]

Jak widać pliku już nie ma. Polecenie Directory (bez parametrów) mówi nam jaka jest aktualnie „bieżąca kartoteka”.

Directory[]

Inne typy plików: grafika

Innymi rodzajami danych, którymi potrafi zajmować się Mathematica to obrazy:

Export["test.png",Integrate[1/(x^4-1),x]]

Polecenie jest dosyć niecodzienne: każę wykonać operację symbolicznego całkowania, a wynik (w postaci wyrażenia nie wykresu) zapisać do pliku graficznego. Sprawdźmy:

Import["test.png"]

Łatwo się przekonać zaznaczając wynik, że jest to obrazek. Możemy zaimportować atrybuty obrazka (“Elements”).

Import["test.png","Elements"]

jego rozmiary (“ImageSize”):

Import["test.png","ImageSize"]

Teraz dobierzemy się do danych. Wiemy, że są one tablicą typu RGBColorArray. Rozmiary obrazka to 34 wiersze po 327 pikseli każdy. A każdy piksel to trzy liczby: natężenie bazowych składowych.

obrazek=Import["test.png","Data"];

Dimensions[obrazek]

obrazek[[1,1]]