44 4 ELEMENTY JĘZYKA MATLAB
Instrukcja for jest umywana bardzo często do generowania wektorów i macierzy oraz do przeszukiwania ich elementów według wybranych kryteriów. Zestaw poleceń, zapisany poniżej, powoduje utworzenie macierzy kwadratowej o rozmiarze lw =6. Elementy tej macierzy, które leżą na głównej przekątnej i poniżej, zawierają znaki przypisane zmiennej zn =’o \ Pozostałe elementy są spacjami- Wzorując się na Fortranie, napiszemy
lw ' 6; zn = ło’; for i=l:lw
for j = 1:i a(i,j) = zn; end
end
disp( 'obrazek’), disp(a) '/.wyprowadzanie wyniku
Powyższy algorytm nie jest optymalny. Rozmiar macierzy jest wielokrotnie zwiększany, na co zużywa się wiele czasu (zaleca się użycie zeros (lw). Dwukropek (:) jest bardziej efektywny niż tt for. Poprawnym, typowym dla MATLAB-a zapisem powyższego algorytmu będzie:
» setstr(tril(’o’*ones(6)))
M-plik (ang. M-file) jest plikiem dyskowym. Jego nazwa kończy się rozszerzeniem .m . M-pliki tworzy się przy użyciu edytorów. Mogą one zawierać, oprócz sekwencji poleceń MATLAB-a, wywołania innych M-plików. M-plik może wywoływać sam siebie.
Rozróżnia się dwa rodzaje M-plików: skryptowe i funkcyjne.
Poniżej zestawiono polecenia specyficzne dla MATLAB-a, reprezentujące elementy języka programowania. W tabeli 4.2 podano polecenia, które ułatwiają wprowadzanie danych i umożliwiają interakcyjne działanie M-plików.
Przy definiowaniu procedur i funkcji są stosowane polecenia z tabeli 4.3 (function, global, nargcftk). Polecenia eval i feval reprezentują sobą narzędzia programowania dostępne w MATLAB-ie.
Tab.4.2 Polecenia inicjujące pracę interakcyjną
nazwa |
opis polecenia |
input keyboard menu pause |
tekst jako znak zachęty dla wprowadzania danych wywołanie klawiatury w trakcie wykonywania M-pliku generowanie okna dla realizacji wyboru danych użytkownika wstrzymanie wykonywania M-pliku i oczekiwanie na reakcję użytkownika |
lab. 4.3 Polecenia związane z programowaniem w MATLAB-ie
nazwa |
opis polecenia |
eval f eval function global nargehk |
wykonanie łańcucha jako polecenia MATLAB-a wykonanie funkcji zapisanej jako łańcuch początek nagłówka M-pliku funkcyjnego definiowanie zmiennych globalnych określenie liczby parametrów funkcji |
1.2.1 M-pliki skryptowe
M-pliki skryptowe (ang.script file) zawierają ciągi poleceń. Działają one na zmiennych globalnych dostępnych w przestrzeni roboczej.
M-pliki skryptowe, pisane przez użytkownika, reprezentują jego własny /• staw poleceń. Mogą być tworzone dla łatwiejszego wprowadzenia większej ilości danych, zapisu wyników obliczeń, uproszczenia powtarzających się operacji itp. Mogą również zawierać algorytmy obliczeniowe.
Poniżej podano przykład pliku skryptowego ldane.m, który wczytuje d<> przestrzeni roboczej kilka zestawów danych. Dane te są zapisane w zewnętrznych plikach z rozszerzeniem .dat, a ich nazwy różnią się między sobą liczbą porządkową. M-plik ldane.m jest także ilustracją działania poleceń eval i feval. Są to bardzo efektywne narzędzia dla programowania specyficzne dla MATLAB-a. Zawartość omawianego pliku jest następująca:
Iname = ’leq’; n = input(’Ile plików z danymi ? ’); for i = l:n
eval(['load ’,fname, int2str(i),’.dat’])