MATLAB
| Matlab | |
| język programowania, matematyka | |
Logo programu |
|
| Producent | The MathWorks |
| System operacyjny | Linux/Unix, Windows, Macintosh |
| Aktualna wersja stabilna | R2010a (5 marca 2010) |
| Licencja | Zamknięte oprogramowanie |
| www.mathworks.com | |
MATLAB - program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych.
Spis treści |
Opis ogólny
Nazwa programu pochodzi od angielskich słów MATrix LABoratory, gdyż początkowo program ten był przeznaczony do numerycznych obliczeń macierzowych. Obecnie program ten potrafi znacznie więcej, cechuje go duża liczba funkcji bibliotecznych oraz duże możliwości rozbudowy przez użytkownika za pomocą pisania własnych funkcji. Posiada on swój język programowania, co umożliwia pisanie w pełni funkcjonalnych programów działających w środowisku Matlaba.
W zakresie grafiki Matlab umożliwia rysowanie dwu i trójwymiarowych wykresów funkcji oraz wizualizację wyników obliczeń w postaci rysunków statycznych i animacji. Możliwe jest pobieranie danych pomiarowych z urządzenia zewnętrznego przez porty w celu ich obróbki. Wszystko to powoduje, że program ten znajduje bardzo szerokie zastosowaniepotrzebne źródło.
Istnieją alternatywne odpowiedniki tegoż programu rozprowadzane na licencjach FLOSS, takie jak Scilab czy Octave, jednak nie są tak rozbudowane jak Matlabpotrzebne źródło.
Obecnie (marzec 2010) numer najnowszej wersji tego programu to R2010a
Rys historyczny
Pra-początki Matlab-a sięgają lat siedemdziesiątych, gdy w USA na zlecenie National Science Foundation powstały biblioteki języka Fortran do obliczeń macierzowych: Linpack i Eispack. Jeden z autorów tych bibliotek, Cleve Moler prowadził zajęcia z algebry liniowej na Uniwersytecie stanu Nowy Meksyk. Chcąc ułatwić życie swoim studentom napisał on w 1980 r. program, który umożliwiał korzystanie z tych bibliotek bez potrzeby programowania w Fortranie. Program ten napisany (także w Fortranie) w formie prostego interaktywnego języka poleceń i rozprowadzany na zasadach public domain był pierwowzorem Matlaba.
W 1983 C. Moler oraz S. Bangert i J. Little (inżynier z Uniwersytetu Stanford) postanowili rozwinąć powyższy projekt - zastąpili Fortran językiem C i dodali zintegrowaną grafikę. Założyli oni firmę The MathWorks Inc., która do dziś zajmuje się rozwojem i sprzedażą pakietu Matlab. W 1985 roku pojawiła się pierwsza wersja programu.
Ważniejsze cechy programu
Najważniejsze rodzaje plików
M-pliki (*.m)
W celu zautomatyzowania pewną liczbę poleceń z wiersza poleceń możemy zapisać do pliku z rozszerzeniem *.m (stąd nazwa m-plik) i tę listę poleceń uruchomić jednym poleceniem - mówimy wówczas o m-pliku skryptowym.
Pisząc powyższą listę poleceń w postaci funkcji języka programowania otrzymujemy dodatkowo możliwość wywołań z parametrami - mówimy wówczas o m-pliku funkcyjnym. W starszych wersjach Matlaba w jednym pliku mogła znajdować się tylko jedna funkcja. Obecnie w jednym pliku może znajdować się wiele funkcji, przy wywołaniu m-pliku wywoływana jest pierwsza funkcja w pliku. M-pliki funkcyjne to programy działające w środowisku Matlaba.
Poniżej przykładowy m-plik generujący trójwymiarowy wykres:
x,y=meshgrid(-3.5:0.05:3.5); z=sin(x).*sin(y)+4*exp(-(x-0.5).^2-(y-0.5).^2); surf(x,y,z) colormap('jet') shading interp xlabel('X') ylabel('Y') zlabel('Z') text(0,4,4,'z=sin(x).*sin(y)+4*exp(-(x-0.5).^2-(y-0.5).^2)','FontSize',18)
Mex-pliki
Program napisany w języku C lub Fortran możemy skompilować poleceniem mex. Wynikiem kompilacji jest otrzymanie pliku dynamicznie ładowanej biblioteki współdzielonej (w Microsoft Windows są to pliki *.dll) nazywanego mex-plikiem (skrót od Matlab EXecutable). Mex-plik można uruchomić z wiersza poleceń w oknie Matlaba tak jak zwykły m-plik.
Przygotowanie mex-pliku bywa kłopotliwe, ale kompilacja do mex-plików ma następujące zalety:
- możemy korzystać z programów i bibliotek napisanych w C lub Fortranie.
- wzrost szybkości obliczeń w porównaniu do m-plików. W tej kwestii w przyszłych wersjach Matlaba przewaga mex-plików będzie malała w stosunku do m-plików.
Mat-pliki (*.mat)
Tymczasowe lub końcowe wyniki obliczeń możemy zapisywać do pliku tekstowego ASCII o dowolnej nazwie lub do pliku binarnego z rozszerzeniem *.mat – wówczas wszystkie liczby (całkowite i zmiennoprzecinkowe) zapisywane są w formacie zmiennoprzecinkowym z podwójną precyzją.
Przykładowy kod źródłowy, który tworzy zmienne x i y, a następnie zapisuje je razem do pliku o nazwie dwie_zmienne.mat:
clear all x=1:100; y=sin(x); save dwie_zmienne x y
Wczytanie zmiennych z pliku *.mat jest możliwe za pomocą polecenia load:
load dwie_zmienne
Używanie plików *.mat zamiast ASCII ma następujące cechy:
- mniejsza zajmowana pojemność na dysku - przykładowo jeśli zapiszemy na dysku liczbę 809154.1345098 to w pliku tekstowym zajmie ona 14 bajtów (13 cyfr + kropka) a w pliku binarnym 8 bajtów (taki rozmiar mają liczby zmiennoprzecinkowe ze zdwojoną precyzją). Może to mieć duże znaczenie przy większej ilości danych.
- konwersja z systemu dwójkowego na dziesiętny przy zapisywaniu do pliku ASCII może prowadzić do błędów zaokrągleń.
- Do pliku ASCII możemy zapisać tylko jedną zmienną podczas gdy do pliku *.mat dowolną ich ilość. (UWAGA: "jedną zmienną" nie oznacza jedną liczbę)
pliki fig (*.fig)
Wykresy i inne formy graficzne wygenerowane w matlabie można zapisać do wybranego formatu graficznego lub do pliku binarnego z rozszerzeniem *.fig. Zaletą tej drugiej formy zapisu jest możliwość późniejszej modyfikacji zapisanego obiektu w programie. Zapisu do formatu fig możemy dokonać za pomocą wybrania odpowiedniej opcji z menu (save as) lub za pomocą polecenia saveas. Wczytania pliku *.fig do matlaba dokonuje się poleceniem open lub openfig.
Język programowania
Język programowania pakietu Matlab jest pełnoprawnym językiem programowania wysokiego poziomu, o składni wzorowanej na języku C. Pozwala on na używanie funkcji i struktur, oraz umożliwia pisanie programów zorientowanych obiektowo. Tak jak wszystkie współczesne języki programowania wysokiego poziomu posiada on instrukcje sterujące takie jak: if, for, while, switch. Rezygnacja z trójargumentowej pętli for na rzecz tzw. notacji dwu-kropkowej skraca kod źródłowy, a więc i czas pisania.
Przykładowa pętla for napisana w C
int i; for (i=0; i<N; ++i) { instrukcje; }
Przykładowa pętla for napisana w Matlabie
for i=1:N instrukcje; end
W zakresie programowania obiektowego możemy: definiować własne klasy obiektów i metody (funkcje) je obsługujące, przeciążać (nadpisywać) funkcje i operatory, oraz dziedziczyć klasy obiektów.
Zaawansowane możliwości programowania w Matlabie, duża ilość gotowych funkcji bibliotecznych (w tym implementacji metod numerycznych) oraz możliwości graficzne powodują że Matlab pozwala na rozwiązanie wielu problemów numerycznych w czasie znacznie krótszym, niż zajęłoby napisanie własnego kodu w C lub Fortranie.
Wszelkie wprowadzane i deklarowane dane (liczby, tekst) Matlab traktuje jako macierz - pojedyncza liczba jest traktowana jako macierz o wymiarze 1x1. Matlab wyróżnia następujące typy danych (wersja 5.x):
- double - macierz pełna. Liczby są reprezentowane w formacie zmiennoprzecinkowym z podwójną precyzją. W Matlabie możemy wykonywać operacje arytmetyczne tylko na liczbach typu double.
- char - typ tekstowy jakim jest dowolny napis. Formalnie jest to tak samo jak w języku C 8-bitowy typ całkowity (zakres 0 - 255). Dana liczba reprezentuje odpowiadający jej kod ascii.
- sparse - macierz rzadka. Elementy zerowe macierzy nie są zapamiętywane w pamięci komputera. W przypadku macierzy o dużej liczbie zer (macierze diagonalne, macierze rzadkie etc.) oszczędzamy pamięć oraz uzyskujemy skrócenie czasu obliczeń.
- struct - struktura. Tak jak w każdym języku programowania struktura jest typem danych zawierającym w swoich polach dane różnych typów.
- cell - macierz komórkowa (blokowa) - pojedynczymi elementami takiej macierzy mogą być nie tylko liczby ale i dowolne dane z powyższych typów. W macierzy komórkowej możemy przechować kilka macierzy o różnym wymiarze, tekst i strukturę jednocześnie.
- uint8 - 8-bitowy typ całkowity (zakres 0 - 255) przeznaczony do zapisywania w pamięci obrazów graficznych. Na tym typie danych nie można wykonywać żadnych operacji arytmetycznych.
Charakterystyczne dla języka programowania Matlaba jest automatyczne rozpoznawanie typów zmiennych - nie występuje deklaracja typu (przykładowo w języku C przed użyciem zmiennej abc konieczna jest linia - "double abc;"). Matlab rozpoznaje typ zmiennej przy jej pierwszym użyciu, należy tylko odpowiednio ją wywołać.
| Typ | Wywołanie |
|---|---|
| double | a=1 (a=[1]) |
| char | a='napis' |
| sparse | a=sparse(1) |
| struct | a.składnik=1 |
| cell | a={1} |
Grafika
Matlab cechuje obiektowy system graficzny:
- obiekty graficzne (nadrzędne okno graficzne, układ współrzędnych, okno menu, przyciski i suwaki etc.) są hierarchicznie uporządkowane w postaci drzewa - każdy obiekt ma jednego przodka i może mieć dowolną ilość potomków (dziedziczenie)
- każdy obiekt graficzny ma swoje właściwości (kolor, rozmiar, położenie etc.)
Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.
Wczytywane obrazy są w pamięci zapisywane w postaci macierzy liczb double (w zakresie 0 - 1) lub liczb unit8 (zakres 0 - 255), obróbka obrazu polega na dokonywaniu operacji matematycznych na takiej macierzy.
Biblioteki Dodatkowe (Toolboksy)
Toolboksy (z ang. toolboxes) to zbiór dodatkowych bibliotek (m-plików) do rozwiązywania specjalistycznych problemów z określonych dziedzin (automatyka, elektronika, telekomunikacja, matematyka etc.). Biblioteki te rozszerzają możliwości Matlaba i pisane są także przez oddzielnych producentów oprogramowania.
Spośród dużej liczby istniejących toolboksów wymienić można:
- Financial Toolbox - przeznaczony do analiz i obliczeń finansowych (planowanie stałych przychodów, badanie wydajności obligacji, kalkulacja przepływu gotówki, obliczanie stóp procentowych etc.).
- Fuzzy Logic Toolbox - środowisko do projektowania i diagnostyki inteligentnych układów sterowania wykorzystujących metody logiki rozmytej i uczenie adaptacyjne.
- Image Processing Toolbox - programowe narzędzia do przetwarzania obrazów.
- Mapping Toolbox - przeznaczony do analizy informacji geograficznych i wyświetlania map, z możliwością dostępu do zewnętrznych źródeł geograficznych.
- Neural Network Toolbox - zbiór funkcji do projektowania i symulacji sieci neuronowych.
- Symbolic Math Toolbox - zestaw funkcji do obliczeń symbolicznych - rozszerza możliwości Matlaba o możliwość wykonywania obliczeń symbolicznych.
- Partial Differential Equation Toolbox - zestaw funkcji do numerycznego rozwiązywania równań różniczkowych cząstkowych metodą elementów skończonych.
- Simulink - pakiet służący do modelowania, symulacji i analizy układów dynamicznych. Simulink dostarcza także graficzny interfejs użytkownika umożliwiający konstruowanie modeli w postaci diagramów blokowych.
- Spline Toolbox - zestaw bibliotek do aproksymacji i interpolacji funkcjami sklejanymi.
- Wavelet Toolbox - biblioteka do analizy sygnałów oraz usuwania szumów.
Zobacz też
Linki zewnętrzne
- Strona producenta programu Matlab
- Strona polskiego dystrybutora programu Matlab
- Forum polskich użytkowników programu Matlab
| Gry komputerowe Gry komputerowe, piłkarskie, sport… www.euro-mistrzostw… | poradniki do gier www.gry.mocny.com | Firany www.finezja-studio.… | Darmowe gry darmowe gry, gry www.gry.emity.pl | pomoc domowa Warszawa Agencja Dudek www.agencjadudek.pl |
Być może zainteresują Cię strony:
Kody apartment in Madrid Ustawy Sejmowe IV sts katalog drukowanie w kolorze Panasonic Drogo prowadź - Edyta Gepperd Ogłoszenia matrymonialne Nysa
Nauka na Focus.pl
Inwazja mikrorobotów
Chirurdzy od stuleci starają się operować sprawniej, szybciej i bezpieczniej dla pacjenta. W XXI w. coraz częściej będą ich w tym wyręczały maszyny – także takie, które same poruszają się wewnątrz ciała człowieka
Mon, 09 Aug 2010 09:00:00 +0200
Pora na cyberdoktora
Po stuleciach rozwoju medycyny wiemy już, że technologia jest nam niezbędna do skutecznej walki z chorobami. Lekarze coraz częściej będą musieli ustępować pola maszynom, które zaczynają ich wspomagać, reprezentować, a nawet zastępować podczas zabiegów
Sun, 08 Aug 2010 09:00:00 +0200
Terapia dla systemu
Czytając o futurystycznych terapiach czy technologiach, łatwo możemy zapomnieć, że to, co nowe, z reguły też jest drogie. Ażeby było nas stać na cuda medycyny XXI wieku, musimy najpierw wyleczyć system opieki zdrowotnej
Fri, 06 Aug 2010 09:00:00 +0200
Leczenie na ekranie
Filmowa medycyna po serii wnikliwych analiz i prześwietleń okazuje się po prostu czekaniem na cud – najczęściej technologiczny
Tue, 03 Aug 2010 09:00:00 +0200
Dieta na sto lat
Kiełki brokułu, kawior i jeżyny popite zieloną herbatą – takie menu proponują nam naukowcy. Na szczęście superzdrowa dieta przyszłości nie musi być monotonna
Thu, 29 Jul 2010 09:00:00 +0200
Historia na Focus.pl
Z piekła do raju
Z armią generała Andersa ZSRR opuściło 45 tys. cywilów, głównie kobiet i dzieci. Co drugie dziecko z Syberii trafi ło do brytyjskich kolonii w Afryce. Dla kilkunastu tysięcy maluchów była to przygoda życia
Sat, 04 Sep 2010 09:00:00 +0200
Wycieczka Focusa - okolice Krosna
Fort XIII o nazwie San Rideau (Zasłona Sanu) był kiedyś imponującą budowlą, wchodzącą w skład Twierdzy Przemyśl, którą władze austro-węgierskie umacniały aż do wybuchu I wojny światowej.
Fri, 03 Sep 2010 09:00:00 +0200
Uskrzydlone Indie
Indyjscy nacjonaliści, zamiast chwalić się własnymi osiągnięciami, przypisują sobie odkrycia zagranicznych uczonych. Zachodowi postanowili odebrać nawet samolot!
Thu, 02 Sep 2010 09:00:00 +0200
Jezus, syn Saturna
Do epoki oświecenia ludzie wierzyli, że ciała niebieskie mają decydujący wpływ na ich losy. Ewangeliści, spisując historię Jezusa, również byli pewni, że jego życiem kierował Saturn
Tue, 31 Aug 2010 09:00:00 +0200
Haki Hoovera
Polityka haków jest bardzo niebezpieczna – także dla tych, którzy szykują haki na swych przeciwników. Świadczy o tym choćby przykład szefa FBI
Sun, 29 Aug 2010 09:00:00 +0200
Cywilizacja na Focus.pl
Od stypy do bijatyki
My, Polacy, lubimy przeżywać zbiorową żałobę. Dzięki niej z grupy anarchistycznych egoistów przemieniamy się na chwilę we wspólnotę
Wed, 01 Sep 2010 09:00:00 +0200
Hodowla winniczków
Czy ślimacze mięso to jedyny produkt hodowlany, jaki trafia na talerze smakoszy?
Mon, 23 Aug 2010 09:00:00 +0200
Człowiek, nie fatum
Po kolejnej tragedii związanej z Katyniem określenie „miejsce przeklęte” nasuwało się automatycznie. Rozum podpowiada, by nie szukać związku między zbrodnią popełnioną z premedytacją a katastrofą lotniczą, bo taki nie istnieje. Trudno się jednak powstrzymać, o czym świadczą liczne przykłady
Sun, 22 Aug 2010 09:00:00 +0200
Zielone więzienie
Kryminaliści na platformie nad miastem doją krowy i uprawiają marchewkę – oto wizja architektów z Malezji
Sat, 21 Aug 2010 09:00:00 +0200
Korpoplemiona
Piosenka, w której pracownicy sieci Auchan wyśpiewują swoje oddanie firmie, rozbawiła internautów. Tymczasem identycznie zachowywały się już prehistoryczne plemiona. By przetrwać w nieprzyjaznym środowisku, musiały wzmacniać więzi
Fri, 20 Aug 2010 09:00:00 +0200
Nauka na Onet.pl
Przenoszenie ciąży zwiększa ryzyko porażenia mzgowego
Pord przed terminem jest znanym czynnikiem ryzyka dziecięcego porażenia mzgowego. Naukowcy z Norwegii przekonują, że rwnież przenoszenie ciąży, czyli urodzenie malucha w 42. tygodniu ciąży lub pźniej, zwiększa ryzyko porażenia mzgowego.
Sat, 04 Sep 2010 09:50:00 GMT
Archeolodzy odnaleźli w Gnieźnie pozostałości po bramie i murach
Badania archeologw potwierdziły, że w Gnieźnie w pobliżu tamtejszego kościoła św. Jerzego na Wzgrzu Lecha odkryto pozostałości po bramie wjazdowej do książęcej części gnieźnieńskiego grodu. Wraz z nią odnaleziono też znaczne fragmenty murw o nietypowej konstrukcji.
Fri, 03 Sep 2010 22:30:00 GMT
Lepsze leczenie nowotworw oka
Olej silikonowy może poprawić wyniki leczenia rzadko występujących nowotworw oka - informuje pismo "Archives of Ophtalmology".
Fri, 03 Sep 2010 22:10:00 GMT
Liście curry pomagają w zapobieganiu cukrzycy
Naukowcy amerykańscy odkryli, że aromatyczne liście występującego na Cejlonie i w Indiach drzewa Bergera koenigii obniżają poziom cukru we krwi będący jednym z objaww cukrzycy.
Fri, 03 Sep 2010 09:24:00 GMT
W Chinach odkryto ślady prehistorycznych osad
Chińscy archeolodzy odkryli pozostałości dwch prehistorycznych osad podczas prac wykopaliskowych prowadzonych w płnocnej części kraju - informuje serwis internetowy Sify News. Odkrycia dokonano na stanowiskach znajdujących się na terenie okręgu Tongliao we wschodniej części Regionu Autonomicznego Mongolii Wewnętrznej w Chinach.
Fri, 03 Sep 2010 08:22:00 GMT
Ciekawostki na Onet.pl
WWF zaprasza do "rykw" na rzecz tygrysw
Organizacja ochrony przyrody WWF uruchomiła w czwartek stronę internetową, na ktrej zachęca internautw do "rykw" na rzecz żyjących na wolności tygrysw.
Sat, 04 Sep 2010 09:52:00 GMT
Oryginalny sposb na zbudowanie "domu"
Chiński grnik zbudował 6 metrw pod ziemią dom o powierzchni 50 metrw, gdyż nie było go stać na zwykłe mieszkanie - informuje dziennik "China Daily".
Sat, 04 Sep 2010 04:36:00 GMT
Diesle bardziej ekologiczne niż samochody elektryczne
Wpływ środowiskowy samochodw z silnikami Diesla jest niższy niż samochodw z silnikami elektrycznymi zasilanymi ogniwami. Winny jest proces przygotowania, produkcji, ładowania i recyklingu powszechnie stosowanych w nich ogniw litowo-jonowych - twierdzą w swoim raporcie specjaliści ze szwajcarskich Federalnych Laboratoriw Inżynierii Materiałowej i technologii (EMPA).
Fri, 03 Sep 2010 22:30:00 GMT
Naukowcy określili najbardziej atrakcyjną figurę kobiety
Najbardziej atrakcyjna kobieca figura ma kształt klepsydry i idealną talię. Naukowcy nowozelandzcy przeprowadzili badania, z ktrych wynika, że figura o kształcie klepsydry jest dla mężczyzn znacznie atrakcyjniejsza, niż rozmiar piersi, czy rysy twarzy potencjalnej partnerki, zaś najkorzystniejsze proporcje rozmiarw to stosunek obwodu talii do bioder wynoszący 0.7.
Fri, 03 Sep 2010 22:10:00 GMT
Kuracja dwulatka uzależnionego od papierosw
Dwuletni Indonezyjczyk Aldi Rizal, ktry wypalał do dwch paczek papierosw dziennie, w końcu zerwał z nałogiem. Zdjęcia dziecka, zaciągającego się papierosem, pojawiły się w maju w internecie, wywołując oburzenie na całym świecie.
Fri, 03 Sep 2010 15:27:00 GMT

