Strona główna |
---|
TEMATY OPRACOWANE:
TEMATY W OPRACOWANIU:
Matlab | <="" td=""> |
---|---|
Wstęp
Czym jest Matlab, w jakich dziedzinach najczęściej znajduje zastosowanie, dane techniczne, funkcje dostępne w programie, a także inne wiadomości na temat tego znakomitego programu. Nie będzie to być może opracowanie fachowe, takie z jakich korzystałem pisząc ten fragment strony. Mam nadzieję jednak, że Ci którzy nigdy nie słyszeli o Matlab zostaną nim zainteresowani i spróbują coś własnego w Matlabie stworzyć lub też sięgną po ten program gdyż stwierdzą, że będzie on doskonałym ułatwieniem ich pracy zawodowej, czy nauki na studiach
Osobiście gorąco wszystkich zachęcam do wypróbowania. Tym bardziej, że Matlab cieszy się dobrą opinią na całym świecie, także na polskim rynku jest już znany. Można więc kupić wiele książek wyjaśniających działanie programu, istotę użytkowania. Na pierwszy rzut oka Matlab wydaje się być bardzo skomplikowanym narzędziem. Zobaczycie jednak, że po kilkukrotnym spotkaniu z nim nie wydaje się taki straszny. Jest wręcz bardzo przyjazny i mnóstwo rzeczy robi sam, nie trzeba go o to prosić.
Charakterystyka Matlab
Nazwa Matlab wywyodzi się od angielskiego zwrotu Matrix Laboratory, czyli laboratorium macierzoweDlaczego akurat taka nazwa? Odpowiedź jest bardzo prosta. Programując w Matlab mamy do dyspozycji bardzo bogatą bibliotekę funkcji macierzowych. Nie musimy się więc martwić o dodatkowe deklaracje zmiennych, zapętlenie w funkcjach itd. Wszystko to jest w Matlabie zazwyczaj zbędne. Zmienne, jak i działania na nich podlegają tzw.; wektoryzacji, a zatem nie tracimy zbędnego czasu aby deklarować określone działanie na liczbach z uwzględnieniem każdego przypadku - Matlab robi to za nas. Specjaliści używający tego programu cytują często slogan: Życie jest zbyt krótkie, aby tracić czas na pisanie pętli!. Jest to zasadniczo prawda, aczkolwiek w Matlabie przymus pisania pętli jest doprawdy rzadkością.
Jak już każdy, kto Matlaba nie zna może się domyśleć, iż program ten służy najogólniej rzecz biorąc do przeprowadzania obliczeń. Jest to prawda. Ze względu jednak na bogate biblioteki tego programu, a co za tym idzie możliwość przeprowadzania wszechstronnych obliczeń, Matlab jest po prostu nie ocenionym kalkulatorem, który także potrafi kreślić wykresy i zmieniać formę obrazów. W Matlabie można deklarować macierze trójwymiarowe, czyli o m x n x k wymiarach.
Matlab składa się niejako z czterech części. Dwie pierwsze z nich, najważniejsze użytkownik ma do dyspozycji kupując wersję podstawową programu.
Są to więc; interpreter języka programowania, dostępnego z poziomu Matlaba i podstawowe biblioteki macierzowe. Użytkownicy, których natomiast nie zadowala już wersja podstawowa programu mogą pokusić się o wzbogacenie go poprzez zainstalowanie dodatkowych skrzynek narzędziowych, które mogą zawierać najprzeróżniejsze funkcje i tak np.: Signal Processing Toolbox - cyfrowe przetwarzanie sygnału, Optimization Toolbox - metody optymalizacji. Wzbogacać można Matlabaw zależności od własnych potrzeb.
Warto wiedzieć, że program ten działa na wielu platformach, między innymi: DOS, Windows 3.1 i dalsze, Unix, czy też na komputerach wysokiej klasy. To wszystko czyni Matlaba bardzo wyjątkowym programem!
Typy danych
Jedyneym używaneym w Matlabie typem danych są macierze. Oczywiście można korzystać z pojedynczych liczb, ale tak naprawdę to macierze stanowią podstawowy typ danych. Obok normalnej funkcji numerycznej występują one także w roli wartości logicznych oraz łańcuchów tekstowych. Prostota z jaką matlab radzi sobie z ogromnych wymiarów macierzami, także wielowymiarowymi jest zaskakująca. Jeśli mówić o maciezach to wiadomym jest, że są one zbudowane z liczb rzeczywistych. Innym typem danych są dane reprezentowane przez liczby zespolone, z których również mogą być budowane macierze. Sposóbn ich prezentacji oraz przeprowadzania obliczeń zależny jest przede wszystkim od platformy sprzętowej. Większość komputerów, w tym komputery klasy PC XT/AT/386/486/P5, oferuje arytmetykę zmiennoprzecinkową zgodną ze standardem IEEE. Na komputerach kalsy PC program Matal operuje na liczbach zajmujących w pamięci 64 bity (odpowiada to typowi double językaC/C++, co daje zakres wartości dodatnich od ok. 1,7*10-307 do 1,7*10-307 Maksymalną i minimalną wartość liczby rzeczywisej dodatniej można poznać za pomocą funkcji realmin i realmax. Tak więc, zapisując na przykład liczbę 2/3 w różnych formatach otrzymujemy kolejno:
short | 0,6667 |
---|---|
short e | 6.6667e-001 |
long | 0.66666666666667 |
long e | 6.666666666666666e-001 |
hex | 3fe5555555555555 |
+ | Znak plus drukowany dla liczb dodatnich |
Bank | Format walutowy |
Compact | Wyłącza dodawanie dodatkowych pustych wierszy |
loose | Włącza dodawanie dodatkowych pustych wierszy |
rat | 2/3 |
Matlab zawiera standardową zmienną eps, która wykorzystywana jest w wyznaczaniu rzędu macierzy. Jej początkowa wartość wynosi 2-52 i stanowi odległość między liczbą 1 a najbliższą jej liczbą zmiennoprzecinkową.
Funkcje macierzowe w Matlab
W Matlab, jak to już zostało powiedziane istnieje wiele możliwości działan na macierzach. Należy zacząć jednak od tego, iż Matlab posiada funkcje konsturujące macierze. Definicji macierzy można dokonąć na kilka sposobów:
przez wymienienie elementów
przez wygenerowanie elementów
przez zbudowanie z innych macierzy
poprzez zastosowanie dwóch lub więcej technik, wymienionych wyżej razem
Pierwsza technika polega na wymienieniu elementów, co należy czynić z zachowaniem podstawowych trzech zasad:
liczby kolejnych wierszy odzialamy przecinkami
koniec wiersza znaczony jest średnikiem
liczby mające wartości niepełne zapisujemy odzielając je kropką - nie przecinkiem
Macierz A zapisać zatem należy A=[2,3.4,4;3,5,8.9,7]. Posiada ona 2 wiersze złożone z trzech liczb. Koniec wiersza można zdefiniować używając trzykropka ....
Innaczej macierz można stworzyć generując jej elementy, wykorzystując np. funkcję:
min:krok:max
Funkcja ta generuje macierz od najmniejszej wartości min z odpowiednio wielkim krokiem, kończąc na wartości maksymalnej, np.: A=[1:10;1:2:20]
Wygenerowana zostanie dwuwierszowa macierz której wiersz pierwszy zawierać będzie kolejno liczby od 1 do 10, natomiast wiersz drugi od 1 do 20, z tym jednak, że kolejna liczba drugiego wiersza będzie wzrastała kolejno o 2.
Macierze konstruować można poprzez zestawienie z innych macierzy. Dysponująć kolejno macierzami A oraz B o takiej samej liczbie wierszy lub kolumn należy zapisać insturkcję budowy macierzy C w podany sposób.
C=[A;B]
lub nieco bardziej komplikująć sprawę, przypuśmy, że łączna ilość wyrażeń w wierszu dwojga macierzy A, B wynosi tyle samo ile ilość wyrażeń w macierzy D. Można te trzy macierze połączyć w jedność łącząc kolejno dwie pierwsze, jako pierwszy wiersz macierzy wynikowej, natomiast drugi wiersz macierzy wynikowej zawierać będzie macierz D. Takie polecenie zapisać można analogicznie, jak polecenie stworzenia macierzy poprzez wypisanie jej pojedynczych elementów, czyli;
D=[A,B;C].
Matlab dysponuje ponad to funkcjami wspomagającymi konstruowanie macierzy i tak kolejno:
eye(n) - tworzy macierz identycznościową n x n
eye(n, m) - z jedynkami na głównej przekątnej
ones(n) - tworzy macierz n na n lub m na n wymiarach o wszystkich elementach równych 1. Aby wypełnić już istniejącą macierz, np. A elementami równymi 1 należy użyć polecenia A=ones(size(A))
zeros(n) - tak jak wyżej, tyle tylko, że wypełnienie zerami
rand(n, m) - wypełnienie liczbami pseudolosowymi macierzy n lub n x m wymiarze.
randn(n) - działa jak funkcja rand, z tą różnicą, że generowane liczby noramlane podlegają rozkładowi normalnemu, jednostajnemu z przedziału <0,1>
linspace(x1,x2 - generowanie wektora wierszowego 100 liczb z równomiernie rozmieszczonymi wartościami pomiędzy punktami x1 oraz x2
logspace(x1,x2) - generuje wektor wierszowy 50 liczb logarytmicznie równo rozmieszczonych pomiędzy wartościami 10x1, a 1010x2
meshgrid(x,y) - generuje wektory gotowe do użycia w funkcjach graficznych
Dostęp do elementów macierzy jest kolejnym zagadnieniem omawianym na tej stronie, które warto znać w trakcie korzystania z programu. Dostęp taki możemy uzyskać bezpośrednio do odpowiedniej komórki w macierzy wpisując żądany wiersz i kolumnę macierzy - np. A=[2,3].
Laboratorium macierzowe pozwala na wiele opcji obliczeniowych wykonywanych na macierzach. Można więc dokonywać odejmowania, dodawania, mnożenia, dzielenia macierzy, odwracania, odwracania o np. 90o, wydobywanie kolejnych wierszy oraz kolumn, wydobywanie przekątnych. Program został tak skonstruowany, aby możliwym było sprowadzanie macierzy do prostszych postaci, czyli tzw. macierzy rzadkich. Oprócz pewnych zawiłości spowodowancyh wymogami technik obliczeniowych tworzenie takich macierzy ma zasadniczo na celu operowanie tablicami przenoszącymi taką samą wartość informacyjną, jak macierze pełne z tym jednak, że w pamięci operacyjnej komputera zajmują mniej pamięci, a co za tym idzie skracany jest czas obliczeń. Szczególnie ważne jest to w przypadku macierzy o wielkich n x m rozmiarów. Poniżej zamieszone zostają podstawowe funkcje, jakimi dysponuje program w trakcie obliczeń macierzowych.
[m, n]=size(A) Q=A(m:-1,1,:); W=(:, n:-1:1); |
Odwracanie kolejności kolumn, wierszy Odwracanie kolejności wierszy Odwracanie kolejności kolumn |
---|---|
Y=rot90(X) | Obracanie macierzy o kąt 90o w kierunku przeciwnym do ruchu wskazówek zegara |
Y=fliplr(X) | Zwracana macierz jest wynikiem odwrócenia kolejności kolumn. Pierwsza kolumna staje się ostatnią i odwrotnie |
Y=flipud(X) | Zwracana jest macierz Z, której wiersze są ułożone w kolejności odwrotnej niż w macierzy X |
Y=diag(X,k); | W wekorze Y zostaje zwrócona przekotna macierzy, przy czym dla k>0 zostaje zwrócona przekątna naddiagonalna i dla k>0 przekątna leżąca poniżej elementów diagonalnych macierzy X. |
Y=trii(X, k); | Zwraca górną macierz trójkątną z macierzy X |
Y=triu(X, k); | Zwraca dolną macierz trójkątną z macierzy X |
Y=reshape(Z, n,m) | Tworzy macierz Y o n, m elementach wybranych kolejno kolumnami z macierrzy Z |
Operacje na macierzach rzadkich | |
Y=sparse(i, v, n, m, nzmax); | Funkcja tworzy macierz rzadką o n x m wierszach i kolumnach rezerwująć miejsce w mapięcie dla nzmax elementów zerowych. |
Używając tylko tych, powyżej przytoczonych funkcji można już dokonywać dość skomplikowanych obliczeń, a jest to tylko namiastka wszystkich funkcji bibliotecznych programu. Łatwo zatem wyobrazić sobie jak wielkie możliwości daje ten program przy umiejętnym i fachowym zastosowaniu.
Funkcje graficzne
Program Matlab jest wyposażony w ogromną ilość funkcji obsługujących grafikę. Potrafi on przetwarzać mapy bitowe, rysować, kreślić niemalże dowolne, dostosowane do naszych żądań wykresy wielowymiarowe oraz, co bardzo ważne dokonywać animacji. Instrukcji tych jest tak wiele, że nie sposób powiedzieć o nich wszystkich. Niektóre z nich towarzyszą dalece zaawansowanym analizom i obliczeniom z dziedziny np. fizyki i o tych mowy tutaj nie będzie ze względu na stopień trudności takich analiz. Omówione natomiast zostaną podstawowe funkcje obsługujące kreślenie wykresów, jakie można użyć w obrazowaniu przeprowadzanych obliczeń statystycznych, a także w odzwierciedlaniu ewentualnych wyników takich obliczeń.
Funkcje graficzne zwracają wykresy w nowych oknach, których nazwy jeśli nie zostaną zdefiniowane przyjmują nazwę Figure No. wraz z kolejnym numerem pojawiającego się okna, a więc 1, 2, 3 itd. Więcej na temat tworzenia tytułu nowego okna znajdziecie w części budowa interfejsu Wykreślane wykresy i funkcje je tworzące wspóldziałają bezpośrednio z funkcjami numerycznymi programu i nie trzeba dodatkowego uwikływania się w przekazywanie wyników operacji arytmetycznych funkcjom graficznym.
Najczęściej spotykanyą funkcją graficzną jest funkcja odzwierciedlająca przebieg funkcji jednej zmiennej. Dla przykładu wykreślmy funkcję cos zmiennej A, której wartości zawierają się w przedziale A=-pi:0,01:pi;, co zapisujemy następująco:
Y=cos(A);
plot(A,Y)
przy czym A = -3.1416 -2.1416 -1.1416 -0.1416. Zostanie wyrysowany zatem odpowiednio na płaszczyźnie zbgiór pary punktów dla obliczonej funkcji cosinus(A) przy przyjęciu wartości samego A jako determinujących skalę jednej z osi. Wykres taki nie zaskoczy bynajmniej nikogo.
Program pozwala umieszczać kilka wykresów w jednym oknie, co ma służyć wygodniejszemu przeglądaniu wyników. Umieszczenie w aktywnym oknie kilku wykresów wywoływane jest funkcją:
subplot(m,n,p)
gdzie:
m - liczba wykresów w pionie
n - liczba wykresów w poziomie
p - numer wykresu, który zostanie wykreślony jako pierwszy po użyciu funkcji plot, przy czym warto wiedzieć, że wykresy numerowane są od lewej do prawej, a wiersze od góry do dołu.
PARAMETRY m i n MUSZĄ BYĆ LICZBAMI NATURALNYMI Z PRZEDZIAŁU <1,9>
subplot('position',[l,b,w,h]) - zastosowanie takiej postaci tej funkcji określa dokładne położenie wykresu kolejno od lewej, od prawej następnie parametry oznaczone jako: w i h służą do określenia szerokości oraz wysokości układu współrzędnych
id=subplot(...) - określa id wykresu.
<paxis([xmin,xmax,ymin,ymax - funkcja pozwalająca na ręczne ustalenie skali układu współrzędnych danego wykresu. Funkcja ta jak widać wymaga zdefiniowania najmniejszych wartości dla skal y oraz x oraz największych wartości dla tych skal.Aby ukryć osie należy zastosować komendę:
axis(off)
axis(square) -osie mają taką samą liczbę jednostek
axis(equal) - powoduje iż mimo różnej ilości jednostek na osiach, wykres zostaje dostosowaney do okna, co skutkuje tym iż osie na ekranie mają taką samą długość
axis(normal) - powoduje zniesienie działania dwóch wcześniej stosowanych komend, czyli equal i square
axis(image) - rezerwuje na wykresie miejsce dla wyświetlania grafiki, co zasadniczo powoduje dostosowanie wielkości wykresu do wielkości użytego image
NIE SĄ TO WSZYSTKIE WŁAŚCIWOŚCI FUNKCJI axis. Zainteresowanych odsyłam do literatuty fachowej !!!
hold(on,off) -funkcja powodująca i wstrzymanie i uruchomienie rysowania wykresów w aktywnym oknie na wykresach wyrysowanych już wcześniej. Polecenie hold używane bez parametrów na zmianę włącza i wyłącza czyszczenie ekranu !
ylabel(tekst, własność_1,własność_2,własność_3,...
Funkcja powoduje wyświetlanie łańcucha znaków opisujących własności osi y, przy czym tekst jest etykietą, a więc należy wpisać w tym miejscu, co oś y odzwierciedla i kolejne własność_1,_2_3,... są opisami znaczników skali.
xlabel(tekst, własność_1,własność_2,własność_3,... -funkcja ta działa w sposób identyczny, jak funkcja wcześniej opisana z tym tylko, że odziaływuje na oś x
grid(on,off) -włączenie i wyłączenie kreślenia siatki na zadanym wykresie.
polar(t,r,s)
Funkcja ,b>polarrysuje wykresy w układzie biegunowym. Należy zatem zdefiniować współrzędne punktów określająć ich odległość od początku układu oraz kąt między odcinkiem łączącym początek układuz danym punktem, a dodatnią osią x
t - wektor zawierający wartość kątów dla poszczególnych punktów, kąty należy określić w radianach, a wzrost wartości kąta powoduje przesunięcie w kierunku przeciwnym do kierunku ruchu wkazówek zegara
r -wektor zawierający odległości poszczególnych punktów od początku układu
s - ciąg znaków opisujący typ linii jaką mają być rysowane wykresy
comet(y
comet(x,y)
comet(x,y,p)
Funkcja powyższa rysuje animowany wykres imitujący lot komety.
x,y - wektory wyznaczają odciete i rzędne punktów wyznaczających trajektorię początkowego punktu rysowanego wykresu
p - określa długość ogona i należy do przedziału ,0,1, przy czym domyślana wartość p=0.1
Poniższy przykład komend zaczerpnięty z książki A. Zalewskiego i R. Cegły; Matlab; Obliczenia numerycznedemonstruje działanie tej funkcji na przykładzie spadającej po schodach piłki. Wykres ten jest oczywiście budowany w czasie.
>>close;
>>x=1:0.005:6;
>>r=rem(x,floor(x));
>>y1=5-floor(x);
>>y2=y1+abs(sin(8*pi*r)).*exp(-5*r);
>>comet(x,y2);
bar(x,y,s) - funkcja rysuje wykres słupkowy. Wywołana z jednym parametrem y rysuje słupki odpowiadające wielkości kolejnych wartości wektora zadeklarowanego właśnie jako y. Wywołana dodatkowo z parametrem x rysuje słupki jak uprzednio z dodatkowymi słupkami wektora x, które jednak muszą być uporządkowane rosnąco. Parametr s określa rodzaj linii jako kreślone zostają słupki na wykresie.
stem(x,y,s) - funkcja ta rysuje wykres zbliżony do słupkowego. Słupki zostają zastąpione tzw. łodygami - z ang. stem. Funkcja ta może być przydatna tam gdzie konieczne jest zaznaczenie dyskretnego charakteru danych, ale danych jest dużo i słupki będące w tym przypadku nieczytelne nie satysfakcjonowałyby użytkowników programu. Parametry tej funkcji mogą być macierzami.
stairs(x,y)
[xx,yy]=stairs(...) - funkcja powołana do rysowania schodów o stopniach odpowiadającym wartościom wektora y. Współrzędne odcięte krawędzi stopniokreślają elementy wektorax. Jeżeli funkcja zostanie wywołana z jednym parametrem to krawędzie stopni będą miały odcięte o wartościach równych kolejnym liczbom naturalnym.
hist(y,n)
hist(y,x)
hist(y,x) - Funkcja rysuje histogram dla zadanych wektorów. Wywołana z jedym tylko argumentem automatycznie dzieli jego wartości na określoną ilość przedziałów. Odbywa się to w następujący sposób: następuje dzielenie tego wektora przez najmniejszą i największą element tego wektora na 10 przedziałów, zliczane zostają następnie elementy, które odpowiadają wartościom poszczególnych przedziałów i następuje wykreślenie histogramu. Jeśli funkcja wywołana zostanie z drugim argumentem wówczas zostanie określona ilość tych przedziałów. Jeśli natomiast funkcję zastosuje się z argumentami wyjściowymi to nie zostanie wykreślonyhistogram, a jedynie nastąpi zwrócenie liczby słupków do narysowania oraz ich wysokość. Czyli wartości granic przedziałów oraz ichpojemności. Stosując wcześniej omawianą funkcję bar można następnie na tej podstawie wykreślić odpowiadający tym wskazaniom histogram.
rose(t)
rose(t,n)
rose(t,x) - funkcja ta rysuje histogram kołowy. Każdy sektor ma wysokość proporcjonalną do liczby elementów w podprzedziale. Kąt nachylenia sektora określa numer podprzedziału. Argumenty funkcji to :
t - wektor danych
n - skalar określający liczbę podprzedziałów
x - wektor określający położenie i wartości reprezentowane przez kolejne sektory.
Warto wiedzieć, że z wartości elementów wektora t przed zliczaniem są brane reszt z dzielenia przez 2pi. Jeśli funkcja zostanie wywołana z parametrami t i r to nie nastąpi wykreślenie wykresu, jedynie możliwym będzie to poprzez zastosowanie funkcji wcześniej omówionej polar(t,r)
plot(z) - funkcja rysuje wykres. Jeżeli jako jedyny argument funkcji wystąpi macierz o elementach zespolonych to działanie funkcji będzie równoważne następującemu jej wywołaniu:
polt(real(z),imag(z))
Jeśli natomiast funkcja taka zostanie zastosowana z wieloma argumentami o wartościach zespoloncych to ich części urojone zostaną pominięte.
Matlab zdolny jest do wykreślania powierzchi w trójwymiarze, bądź to w postaci wieloboków o określoncy kątach, jak i również wykresów w kształcie dzwonów obrazujących dzięki użyciu odpowiedniej ilości kolorów będą wskazywać na trójwymiar obiektu. Aby jednak obiekt wykreślany mógł być trójwymiarowy należy wskazać paramety o tym świadczące. Poniżej zaprezentowane zostają niektóre funkcje obsługującą grafikę 3D.
mesh(x,y,z,c) - funkcja ta powoduje wyrysowania powierzchni opisanej przez macierze x, y oraz z w postaci kolorowej siatki o oczkach wypełnionych kolorem tła. Element macierzy c określają kolory obwóde poszczególnych oczek. Wartości elementów macierzy c wyznaczają indeksy kolorów w aktualnej mapie kolorów. Elementy macierzy c są przeskalowane w taki sposób aby była wykorzystana cała mapa. Jeżeli macierz c zostanie pominięta to przyjmowane jest c=z, czyli kolor obwódek zależy od współrzędnych z ich końców. Przykłądem zastosowania takiem funkcji jest logo programu!
meshc(x,y,z,c) - jest połączeniem dwóch funkcji, wcześniej opisanej funkcji mesh oraz nie wspominanej jeszcze funkcji contour. Funkcja ta rysuje zatem jak wcześniej płaszczyznę opisaną poprzez odpowiednie macierze rysując jednak dzięki funkcji contourdodatkowy wykres poziomicowy pod siatką wykreśloną powyżej.
surf(x,y,z,c) - funkcja ta przeznaczona do rysowania powierzchni opisaną macierzami jak w funkcji mesh z tą jednak różnicą, że na wykresie, dzięki macierzy c oczka wykreślonej siatki przybierają zdefiniowany przez tę macierz kolor nie tak jak wcześniej jedynie kolor siatki był odzwierciedleniem wartości tej macierzy
Matlab posiada jeszcze wiele innych funkcji graficznych. Przedstawione powyżej to tak na dobrą sprawę jedynie skrawek graficznych możliwości programu!
Budowa interfejsu w programie
Program w wersji pod windows dysponuje możliwościami budowy własnego interfejsu. Daje to możliwość pisania nie tylko makr w tym programie. Zapisując w tzw. m - pliku odpowiednie komendy użytkownik jest w stanie zbudować nawet całkiem pokaźny program dostosowując tym samym poniekąd Matlaba do własnych potrzeb. Korzystając bowiem w pracy zawodowej często z jednakowych metod obliczeniowych można napisać program który nie tylko policzy to, co chcemy ale jednocześnie będzie posiadał swego rodzaju eleastyczność, którą twórcy Matlaba nieco zaniedbali i pozostawili to użytkownikowi. Możemy więc skorzystać z systemu okienek wywoływanych w dowolnych rozmiarach, umieszczając w nich odpowiednie obiekty łączyć je z wcześniej napisanymi funkcjami zapisanymi właśnie w m - plikach. Poniższa część poświęcona więc zostanie możliwościom Matlaba w tej dziedzinie, a więc; co powinniśmy zrobić, aby program dostosować maksymalne do naszych potrzeb. Przy czym nie będziemy tutaj wnikać w zawiłości praktyki programowania. Tych których to zainteresuje bardziej odyłam, jak to w takich przypadkach do literatu fachowj, której w polsce nie brakuje na ten temat. Matlab jest bowiem już bardzo popularnym programem i śmiem twierdzić, że większość studentów kierunków politechnicznych naszych wyższych uczelni miała już z nim styczność.
Menu główne okna Tworzenie takieg menu w nowej Figure programu przypomina tworzenie takiego samego menu w Delphi, czy też w Visual Basic. Wystarczy napisać krótki fragment skryptu, aby stworzyć podtrzebne nam menu. W programach wymienionych wcześniej, ci którzy mieli styczność wiedzą iż w pierwszej kolejności należy osadzić niewidoczny obkiet odpowiadający za przechowywanie informacji o menu, o jego pozycjach, grafice itd. Następnie pisząc funkcje przyporządkowane każdej pozycji menu sprawiamy, że wykonuje on nasze życzenia. W programie Matlab odbywa się to wszystko w podobny sposób z tym że w przypisaniu następuje odwołanie do funkcji i nie istnieje obiekt przenoszący właściwości naszego menu. Funkcję tworzącą menu wywołujemy w następujący sposób:
id=uimenu(nazwa_włas.1, wart.1, nazwa_włas.2, wart.2)
To polecenie tworzy dwa elementy menu głównego. Aby zacząć jednak odpoczątku warto wiedzieć, że aby wstawić menu musimy dysponować oknem graficznym, w którym to oknie owe menu będzie mogłobyć osadzone. Nowe okno graficzne tworzone jest za pomocą polecenia figure(h). Przy czym może być ono lecz nie musi wywoływane z (h), co oznacza tzw. handle, czyli jego uchwyt. Służy to mianowicie łatwiejszym odwołaniom do okien, jakie chcemy wywołać lub zamknąć, czy też "zmusić" do pracy. Należałoby również wiedziać, jak programik przez nas napisany powienien zamykać okna już funkcjonujące. Aby zamknąć wszystkie okna należy użyć funkcji:
close all
aby zamknąć okno graficzne o wybranym uchwycie handle należy posługiwać się funkją:
close(h)
Inne przydatne polecenia stosowane w budowie okien graficznych:
gcf - zwraca identyfikator aktywnego okna graficznego, czyli; h=gcf, h=(h)
stan=close(h) - zwraca 1 jeśli o podanym uchwycie (h) zostało zamknięte i w przeciwnym wypadku zwracane zostaje 0.
cla - usuwane zostają wszystkie obiekty z graficznego okna; linie, teksty, obrazy. Wywołane jako cla reset przywołuje domyślne właściwości okna nie mając jedynie wpływu na rozmieszenie go na ekranie, jeśli takowe zostało zdefiniowane.
set - polecenie to może użyte być w formie przypisania, np. a=set(h) zwraca ono wówczas strukturę, której nazwy pól są nazwami własnośći obiektu zidentyfikowanego jako (h). Wartości tych pól są tablicami komórkowymi zawierajcymi możliwe do ustawienia wartości lub pustymi tablicami komórkowymi. Ustawienie tak wielkiej ilości właściwości, jak to jest możliwe jest zazwyczaj zbyteczne i pracochłonne. Zainteresowanych odsyłam do książki Jerzego Brzówzki i Lecha Dobroczyńskiego pt.:Programowanie w Matlab.
A oto przykład jak stworzyć okno graficzne:
>>figure;set(gcf,'MenuBar','none') - stworzona zostaje figura bez menu, dla której można zamieszczać polecenia rysujące np. wykresy. Aby stworzyć menu , w nowej figurze, dopasowanej do objętości tego menu wystarczy przyporządkować m - plikowiinne wywoływane za pomocą tego menu funkcje.
</p