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