Octave w obliczeniach: zapis danych na dysk


Polecenie diary

Rejestrację sesji Octave’a rozpoczynamy od polecenia diary(’plik.txt’). Od teraz wszystko, co pojawi się w oknie poleceń, czyli nasze polecenia, komunikaty błędów, itp., zostanie jednocześnie skopiowane do pliku plik.txt. Zakończenie lub wstrzymanie rejestracji nakazujemy poleceniem
diary off. Wznowienie rejestracji następuje po wydaniu polecenia diary on.

Poniżej został zaprezentowany przykład pracy z poleceniem diary.
W oknie poleceń zostały wydane kolejno następujące polecenia:

– rozpoczęcie rejestracji sesji do pliku plik.txt (diary(’txt’))
– utworzenia kwadratowej macierzy magicznej o boku równym 6 elementów (A = magic(6))
– wyłączenie rejestracji sesji (diary off)
– wyświetlenie zmiennych z pamięci Octave’a (whos)
– włączenie rejestracji sesji (diary on)
– wyświetlenie zawartości zmiennej A (A)
– wyłączenie rejestracji sesji (diary off).

Następnie wyświetlono zawartość pliku plik.txt (type plik.txt). Proszę zwrócić uwagę na brak w pliku części sesji między poleceniami diary off i diary on, czyli wyniku polecenia whos.

>> diary('plik.txt')
>> A = magic(6)
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> diary off
>> whos
Variables visible from the current scope:

variables in scope: top scope

  Attr   Name        Size                     Bytes  Class
  ====   ====        ====                     =====  =====
         A           6x6                        288  double

Total is 36 elements using 288 bytes

>> diary on
>> A
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> diary off

>> type plik.txt
>> A = magic(6)
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> diary off
>> A
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> diary off


Polecenia save / load

Polecenie save umożliwia zapis na dysk zawartości zmiennych z pamięci Octave’a. Zmienne zapisywane są do pliku z rozszerzeniem .mat. Zapisanie zmiennych do pliku na dysku pozwala nam zamknąć Octave’a bez obawy utraty danych przechowywanych w zmiennych. Przy wznowieniu pracy z Octave’em możemy poleceniem load załadować dane z pliku do zmiennych w pamięci Octave’a i kontynuować pracę. Poniżej zaprezentowano zarejestrowaną sesję Octave’a, ilustrującą wykorzystanie pary poleceń save / load.

>> whos             % Wynik polecenia whos pokazuje brak zmiennych w pamięci Octave'a 
>>

>> A = magic(6)
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> B = rand(3,4)
B =

   0.322053   0.201453   0.618629   0.858118
   0.503253   0.178918   0.993835   0.099701
   0.047910   0.109684   0.530826   0.604598

>> whos           % Teraz w pamięci istnieją zmienne A i B
Variables visible from the current scope:

variables in scope: top scope

  Attr   Name        Size                     Bytes  Class
  ====   ====        ====                     =====  ===== 
         A           6x6                        288  double
         B           3x4                         96  double

Total is 48 elements using 384 bytes

>> save ds.mat   % Zapis wszystkich zmiennych z pamięci Octave'a do pliku o nazwie ds.mat
>> clear,clc     % Usunięcie wszystkich zmiennych z pamięci Octava i wyczyszczenie okna poleceń
>> whos          % Wynik polecenia whos pokazuje brak zmiennych w pamięci Octave'a 

>>
>> load ds.mat   % Załadowanie do pamięci Octave'a zmiennych z pliku ds.mat
>> whos          % Teraz w pamięci znów istnieją zmienne A i B
Variables visible from the current scope:

variables in scope: top scope

  Attr   Name        Size                     Bytes  Class
  ====   ====        ====                     =====  ===== 
         A           6x6                        288  double
         B           3x4                         96  double

Total is 48 elements using 384 bytes

>> A            % Dla porównania: zawartość zmiennej A
A =

   35    1    6   26   19   24
    3   32    7   21   23   25
   31    9    2   22   27   20
    8   28   33   17   10   15
   30    5   34   12   14   16
    4   36   29   13   18   11

>> B            % Dla porównania: zawartość zmiennej B
B =

   0.322053   0.201453   0.618629   0.858118
   0.503253   0.178918   0.993835   0.099701
   0.047910   0.109684   0.530826   0.604598

Polecenie save pokazane wyżej zapisuje do pliku wszystkie zmienne obecne w pamięci Octave’a. Można jednak zapisać do pliku .mat tylko wybrane zmienne, wymieniając ich nazwy w poleceniu, np. save ds.mat A (do pliku ds.mat zostanie zapisana tylko zmienna A). Dodatkowe informacje dotyczące polecenia save lub load można uzyskać przy pomocy polecenia help save lub help load.
UWAGA
W przypadku wymiany danych między różnymi pakietami oprogramowania, np. Octave – Matlab, Octave – Python itd, czasami łatwiej w pakiecie Octave dokonać eksportu danych np. do pliku .csv i w innym pakiecie zaimportować dane z pliku, niż wykorzystywać format .mat do przeniesienia danych. Pliki .mat występują w różnych wersjach w różnych aplikacjach i proces ustalenia wspólnego standardu wymiany danych może być kłopotliwy.

Podobne wpisy