- ustawianie zmiennych jako równoważnych macierzy pustej [ ] w celu zwolnienia pamięci, lub też usuwanie ich poprzez użycie instrukcji;
- elear variable_name;
- wielokrotne używanie zmiennych, tak często, jak to jest możliwe.
MATLAB posiada następujące funkcje obsługujące pamięci:
- elear usuwa zmienne z pamięci;
- pack zachowuje istniejące zmienne na dysku, po czym ładuje je w sposób ciągły (ze względu na czasochłonność takich operacji nic powinno się używać instrukcji pack wewnątrz pętli lub M-plików-funkcji);
- save wybiórczo zachowuje zmienne na dysku;
- load ładuje do pamięci plik zawierający dane zachowany za pomocą komendy save.
Pamięć systemu jest zajmowana przez funkcje. Kod M-pliku-funkcji oraz relo-kowalny kod MEX-pliku są ładowane do pamięci, gdy wywoływana jest odpowiadająca im funkcja. Kod M-pliku lub kod MEX-pliku są usuwane z pamięci, gdy:
- dana funkcja zostanie wywołana powtórnie, a istnieje nowa jej wersja, dana funkcja zostanie jawnie usunięta za pomocą polecenia elear.
- wszystkie funkcje zostaną jawnie usunięte za pomocą instrukcji elear f unctions.
MATLAB-owi zabraknie wolnej pamięci.
Dla otrzymania możliwie jak największej szybkości M ATL AB- i konieczna jest wektoryzacja algorytmów w M-plikach. Tam gdzie inne języki programowania mogą używać pętli for lub do, w MATLAB-ic można używać operacji na wektorach lub macierzach. Dla przykładu tworzona jest tabela w sposób tradycyjny:
x = 0;
for k = 1:1001 y(k) = cos(x) ; x = x + .01;
end
W MATLAB-ic zadanie to może być zrealizowane przez polecenia:
x = 0:0.01:10;
y = cos(x)
W bardziej skomplikowanych algorytmach opcje wektoryzacji me zawsze są oczywiste i proste w realizacji. Gdy ważna jest szybkość obliczeń, zaw sze należy szukać sposobu na wektoryzację algorytmów'. Jeśli nie można wektoryzować części kodu. można przyspieszyć pętle for, wstępnie przypisując pamięć dowolnym wektorom lub tablicom, w których są przechowywane wyniki. Na przy kład poniż-
56