background image

Zapisywanie danych na dysk i wczytywanie danych z dysku

1. Zapisywanie i wczytywanie zawartości przestrzeni roboczej

Zawartość zarówno całej przestrzeni roboczej, jak i wybranych zmiennych zapisujemy za pomocą 
polecenia save do pliku z rozszerzeniem *.mat. Wczytujemy je do pamięci poleceniem load.

Przykład

>> x=[0:pi/100:2*pi];

%utworzenie wektora zapisanego w zmiennej x

>> y1=sin(x);y2=cos(x);

%utworzenie wektorów w zmiennych y1 i y2

>> who

%uzyskanie listy zmiennych w przestrzeni roboczej

----------------------------------------------------------------------------
Your variables are:

x   y1  y2  

>> save dane_x_y1_y2.mat

%zapisanie całej przestrzeni roboczej do pliku 
%dane_x_y1_y2.mat

>> dir

%wyświetlenie zawartości katalogu roboczego (widać plik*.mat)

-----------------------------------------------------------------------------
.                 ..                dane_x_y1_y2.mat  

>> clear

%usunięcie wszystkich zmiennych z przestrzeni roboczej

>> who

%lista zmiennych istniejących w przestrzeni roboczej

>> 

%lista jest pusta – wszystkie zmienne usunięto

>> load dane_x_y1_y2.mat

%wczytanie zawartości przestrzeni roboczej z pliku

>> who

%uzyskanie listy zmiennych w przestrzeni roboczej

------------------------------------------------------------------------------

Your variables are:
x   y1  y2  %zmienne zostały załadowane z pliku

Można również zapisać tylko wybrane zmienne

Przykład

>> x=[0:pi/100:2*pi];

%utworzenie wektora zapisanego w zmiennej x

>> y1=sin(x);y2=cos(x);

%utworzenie wektorów w zmiennych y1 i y2

>> who

%uzyskanie listy zmiennych w przestrzeni roboczej

----------------------------------------------------------------------------

Your variables are:
x   y1  y2  

>> save dane_x.mat x

%zapisanie zmiennej x do pliku dane_x.mat

>> dir

%wyświetlenie zawartości katalogu roboczego (widać plik*.mat)

-----------------------------------------------------------------------------
.                 ..                dane_x.mat  

>> clear

%usunięcie wszystkich zmiennych z przestrzeni roboczej

>> who

%lista zmiennych istniejących w przestrzeni roboczej

>> 

%lista jest pusta – wszystkie zmienne usunięto

>> load dane_x.mat

%wczytanie zawartości przestrzeni roboczej z pliku

>> who

%uzyskanie listy zmiennych w przestrzeni roboczej

------------------------------------------------------------------------------

Your variables are:
x   

%zmienna x została załadowana z pliku

2. Polecenie diary

Polecenie umożliwia zapisywanie całych sesji (lub ich części) w edytowalnych plikach. Jako plik 
przechowujący zapis sesji można wskazać plik o dowolnej nazwie i rozszerzeniu. Wszystko, co 
pojawi się w oknie poleceń: polecenia użytkownika, wyniki zwracane przez Matlaba, komunikaty 
itd. zostanie zapisane do tego pliku. Jednak ponieważ np. rysunki i wykresy nie są wyświetlane w 
oknie poleceń, nie zostaną zapisanie w pliku.

Przykład

>> diary mojlog.txt

%polecenie tworzące plik mojlog.txt przechowujący zapis sesji; początek 
%rejestrowania sesji

>> x=[0:pi/100:2*pi]; %utworzenie wektora i przypisanie go do zmiennej x
>> y1=sin(x);

%utworzenie wektora i przypisanie go do zmiennej y1

>> y2=cos

%błędne polecenie

??? Error using ==> cos

%komunikat Matlaba o błędzie – reakcja na błędne polecenie z 

Not enough input arguments.

%poprzedniej linii

>> y2=cos(x);

%utworzenie wektora i przypisanie go do zmiennej y2

>> diary off

%wyłączenie rejestrowania sesji. Następne polecenia (pwd i dir) nie 

%zostaną zapisane w pliku mojlog.txt

>> pwd

-----------------------------------------------------------------------------------
ans =

C:\Program Files\MATLAB71\work

>> dir
-----------------------------------------------------------------------------------

.                 ..                dane_x.mat        dane_x_y1_y2.mat  mojlog.txt        

>> diary on

%ponowne włączenie rejestrowania – następne polecenie (who) pojawi się 
%w pliku rejestrującym sesję

>> who
-----------------------------------------------------------------------------------

Your variables are:
ans  x    y1   y2   

>> diary off

%wyłączenie rejestrowania

A oto zawartość pliku mojlog.txt. Proszę porównać ją z powyższym zapisem.

x=[0:pi/100:2*pi];
y1=sin(x);

y2=cos
??? Error using ==> cos

Not enough input arguments.
 

y2=cos(x);

diary off

who
 

Your variables are:
 

ans  x    y1   y2   
 

diary off