MATLAB – streszczenie by Kula (edited by p4aveu)
Rozdział 1
1. Podstawy podstaw
A wiec… zaczynamy… żeby wypisad coś wystarczy coś wpisad np.:
2+2
I wyskoczy nam
Ans:
4
Haaa działa :D jestem de Best :D
Matlab posiada także zestaw znaczników czy jak to się tam nazywa… chodzi o to ze np. jak wpiszemy i
albo j to mamy liczbę zespolona np.:
(2*i)^2+2
I wyskoczy nam
Ans:
-2
Haaa działa… :P co lepsza program ma jaja i potrafi nawet obliczyd np. Moduł albo pokazad cześd
rzeczywista
Z = 3+2i
Real(z) = 3 - ta komenda pokazuje cześd rzeczywistą liczby zespolonej
Imag(z) = 2 - cześd urojona
Conj(z) = 3-2i - sprzężenie liczby zespolonej
Angle(z) = 0.5880 - argument liczby zespolonej… ( cokolwiek to znaczy…)
Abs(z) = 3.6 - nie to nie jest abs z samochodu :P to moduł
Co lepsza Matlab posiada help’a :D i lookfor’a :D jeżeli nie wiemy co znaczy jakaś komenda to możemy
wpisad np.:
help exp
i wyświetli nam się
EXP Exponential.
EXP(X) is the exponential of the elements of X, e to the X.
For complex Z=X+i*Y, EXP(Z) = EXP(X)*(COS(Y)+i*SIN(Y)).
See also expm1, log, log10, expm, expint.
Overloaded functions or methods (ones with the same name in other directories)
help fints/exp.m
help xregcovariance/exp.m
help sym/exp.m
Reference page in Help browser
doc exp
czyli gówno nam to daje… ale fajnie ze jest… to samo z lookfor
lookfor exp
WOW to jest lepsze niż wikipedia wyświetliło mi się z 1000 linijek :D mówiąc szczerze czekam już 30
sekund a to się jeszcze wyświetla… tez nam to gówno da bo egzamin jest na kartce… ale to tak na
marginesie… :P
2. Macierze
… macierz tworzy się tak…
A = [1 2 3; 1 2 3]
A = [1,2,3;1,2,3]
A = [1,2,3
1,2,3]
…
Można używad poleceo :P
A = [1+2,3+2i;1,1-exp(2)+cos(1)+pi-sin(0)-pi^2]
Lecimy dalej. A więc np.:
A =[1:5] - co oznacza ze macierz będzie miała jeden wiersz czyli będzie wektorem od 1 do 5…
A[pierwsza_liczba:ostatnia_liczba]
To samo będzie przy użyciu
A = [1,2,3,4,5] :p
Można tez dodad krok a wiec A[pierwsza_liczba:krok:ostatnia_liczba]
A = *1:5:10+… otrzymamy 1 i 6… wiem ze dziwne ale tak jest… bo pierwsza liczba to 1 a krok to 5 a wiec
1 + 5 = 6… :P
Do tworzenia macierzy są gotowe komendy…:
Eye(2) - czyli macierz jednostkowa 1 0
0 1
Zeros(2) -macierz wypełniona zerami
Ones(4) -macierz wypełniona jedynkami
rand(2,3) - macierz losowa z przedziału od 0 do 1
randn(2,3) - rozkład normalny o zerowej średniej i jednostkowej wariancji… jebcie to… ja to
przepisałem książki…
Wypisywanie macierzy…
Tworzymy macierz:
X = [1:1:5;1:2:10]
I teraz chcemy ją wypisad czyli dajemy
X(1:2,1:5)
Albo w skrócie
X(:,:) --- i będzie to samo :p
:P czyli… X(wiersze,kolumny)…
Można też tworzyd macierz z macierzy :P
Np.
A = [1,2;3,4];
B = [1:5;1:2:10];
C = [A,B]
Aha… 2 sprawy :P tworząc macierz z macierzy musza zgadzad się wszystkie kolumny i wiersze oraz…
mówiłem już ze jak na koocu komendy zaraz przed enterem damy „;” to nam się nie wyświetli to co się
zrobiło? :p
Matlab pozwala nam na odczytywanie ilości wierszy i kolumn… np.:
Size(B)
Wyświetli nam
Ans:
2
5
Size(B,1) – wyświetla ilośd wierszy
Size(B,2) – ilośd kolumn…
Można też zmienid wymiar macierzy komenda reshape(macierz,wiersze,kolumny) pod warunkiem ze
zgadza się ilośd pól.
Można też bardzo szybko uzyskad macierz sprzężona poprzez apostrof (‘)
Czyli
B’
Da nam macierz sprzężoną
Teraz oczywiście operatory logiczne… wszystko zgodnie z intuicją, czyli aby dodad albo odjąd macierze
musza byd takie same. Przy mnożeniu liczba wierszy pierwszej równa liczbie kolumn drugiej chyba że…
i tu wchodzi nam operator „.” Czyli kropka !! haaa Matlab rox… albo sux… jeden huj…
A = [B]
A*B - się wysypie bo nie zgadza się liczba kolumn i wierszy
A.*B – element pierwszy macierzy A jest pomnożony z elementem pierwszym macierzy B… drugi z
drugim… itd… to samo tyczy się operatora potęgowego… „^” tylko tu jest burdel :P
B^2 – czyli B*B – czyli się wysypie w naszym przypadku
B.^2 – czyli każdy element z B do potęgi 2…
A = [1,2;1,2]
2^A – wyjdą nam jakieś gówna ale chodzi o to ze dwa jest podnoszone do potegi maciezy… cos w tym
stylu… wali mnie to :p
3. Łaocuchy tekstowe
Czyli:
A = ‘test’
i da nam to zmienna typu string o zawartości ‘test’ za to abs(A) da nam wektor liczbowy słowa test :P
abs rulez….
I to by było na tyle :p
4. Skrypty
A wiec primo pierwsze… nigdy nie dawajcie nazwy skryptowi np. if…. ja stworzyłem plik if.m i przez
qrwa prawie 1h się wkurwialem czemu mi nie działa :/ a potem zmieniłem nazwę i działa :P o co
chodziło… wczytywanie polega na wywoływaniu nazwy pliku bez rozszerzenia… a jak wpiszemy zwykle
if… po prostu wyskoczy nam ze brak argumentu… .
A wiec skrypt tworzymy poprzez File->New->M-file, a wywołujemy plik poprzez podanie jego nazwy
bez rozszerzenia… no to marudzid nie ma co przejdźmy do konkretów…
(daruje sobie opisywanie poszczególnych funkcji… po prostu funkcja i składnia…)
IF…
If warunek
Zawartośd
Elseif warunek
Zawartośd
Else
Zawartośd
End
While
While warunek
Zawartośd
End
For
For warunek_poczatkowy:warunek_koncowy
Zawartosc
end
For warunek_poczatkowy:krok:warunek_koncowy
Zawartośd
end
5. Funkcje
Tutaj zaczyna się już trochę komplikacji ale jeszcze idzie to ogarnąd
Generalnie funkcja ma formule:
Function *zmienne_wyjściowe+=nazwa_funkcji(zmienne_wejsciowe)
Zawartośd;
Zawartośd;
…
UWAGA!!! Nazwa funkcji musi mied taka sama nazwę jak plik w którym się znajduje…
Wywoływanie funkcji wygląda tak:
Nazwa_funkcji(argumenty)
Tylko ze w tym wypadku jak np. będziemy mieli 2 zmienne wyjściowe to funkcja zwróci nam wartośd
tylko jednej, tej pierwszej, dlatego lepiej stosowad
*x,y,z…+=nazwa_funkcji(argumenty)
Wtedy funkcja zwraca tyle wartości ile chcemy… oczywiście o ile tyle wartości jest zadeklarowanych…
6.Dalsze działania na macierzach
No to lecimy z komendami…
Inv(macierz kwadratowa) - tworzy macierz odwrotną
Pinv(macierz) – macierz pseudoodwrotna
…
Dobra darujmy sobie… ja to i tak mam z kursu z neta a wiec nie będę wypisywał… mam notatki…
kolegi… to z nich potem omówię dokładniej funkcje które koleś podawał na wykładach…
7.Wielomiany
Tutaj oczywiście jest kilka fajnych funkcji… a wiec zaczynamy:
Polyval(a,b) – przy założeniu ze „a” to jakiś wektor to ta funkcja z tego wektora tworzy wielomian
natomiast „b” jest to jakiś punkt. Całośd podaje nam wartośd funkcji „a” w punkcje „b”.
Roots(a) – Oblicza pierwiastki wielomianu (wektora) „a”
Polyder(a) – Oblicza współczynniki pochodnej wielomianu „a”
Poly([miejsca_zerowe]) – czyli podajemy miejsca zerowe i otrzymujemy współczynniki wielomianu
monicznego.
Conv([jeden_wielomian],[drugi_wielomian]) – podaje współczynniki iloczynu dwóch podanych
wektorów.
Deconv([jeden_wielomian],[drugi_wielomian]) – podaje współczynniki iloczynu tych wielomianow i
reszte z dzielenia.
6. Grafika
Podstawowa funkcja to plot(x,y)… jej 3 parametry to:
Kolor:
Z angielskiego… c – jasnoniebieski, k- czarny, m- purpurowy… a reszta normalnie…
Rodzaje linii:
„-„ ciągła
„- - „ przerywana
„:” wielopunktowa
„.-„ kropkowana
„+””x” – krzyżyki
„.” Wypełnione kółko
„o” nie wypełnione kółko
„*” gwiazdki
Hold on – blokuje wykres
Hold off – odblokowuje wykres
Plot może byd wieloargumentowa czyli
Plot(x1,y1,’g-‘,x2,y2,’r-‘,…)
Można tez podzielid okno z wykresami dzięki komendzie subplot
Subplot(wiersze,kolumny,miejsce)
Warto nadawad wykresom nazwy oraz opisywad osie, służy do tego polecenie
Xlabel(‘xxx’)
Ylabel(‘xxx’)
Title(‘xxx’)
Rozdział 2
Uzupełnienie z wykładów
1. macierze i podstawy podstaw
mówiąc szczerze boli mnie to po 12h nauki ale cóż… zacznijmy od historii…
Matlab powstał w 1980 na potrzeby dziedziny zwanej algebrą liniową, już wtedy powstały biblioteki
LINPACK i EISPACK i w oparciu o nie można było zapisywad podstawowe komendy i obliczenia. Od
wersji 3.5 matlab przeniósł się ze środowiska MS-dos na środowisko windowsowskie. Nie… mam dośc…
skrypt (*.M) – zestaw poleceo
SIMULINK – nakładka , zastępuje interpreter do symulacji obiektów
Zmienne są dynamiczne i matlab traktuje wszystkie liczby jako zmiennoprzecinkowe. A text jako
macierz.
Length(wektor) – zwraca długośd wektora.
Log(x) – logarytm naturalny
Log10(x) – logarytm o podstawie 10
floor(x) – zaokrągla liczbę w dół
ceil(x) – zaokrągla w gorę
fix(x) – odcina wszystko po przecinku
round(x) – zaokrągla zgodnie z zasadą (0-4 w dół; 5-9 w górę – dop. p4aveu)
det(A) – liczy wyznacznik macierzy
rank(A) – liczy rząd macierzy
inv(A) – zwraca macierz odwrotną
v=diag(A) – zwraca wektor z przekątną macierzy
D=diag(A) – tworzy macierz diagonalną na podstawie wektora
fliplr(A) – odbicie lustrzane macierzy
flipud(A) – odwrócenie macierzy do góry nogami
rot90(A) – obraca macierz o 90 stopni (przeciwnie do ruchu wskazówek zegara – dop. p4aveu)
triu(A) – zwraca macierz z elementami nad przekątną i na przekątnej (reszta jest zerowana)
tril(A) – odwrotnie do powyższego (edit – p4aveu)
min(a,b) – zwraca mniejszą funkcję, wektor, liczbę
max(v) – zwraca największy wiersz, macierz, liczbę…
sum(x) – sumuje elementy, macierze, wektory
prod(x) – iloczyn elementów
mean(x) – średnia arytmetyczna elementów z wektora
std(x) – odchylenie standardowe
prod(1:x) – silnia
eval(‘…’) – wypisuje zawartośd zmiennej („bardzo mocne polecenie” – cytat Plucioskiego dop.
p4aveu)
2. dalsze części wykładu
Save plik zmienna – zapisuje podana zmienna pod dana nazwa pliku
Save plik – zapisuje wszystkie zmienne
Load plik – ładuje zmienne
Chdir ’i:/matlab’ – katalog roboczy; Tam wrzuca się funkcje. Inaczej nie będą widoczne.
Axis – ręczne skalowanie wykresu
Axis([xmin xmax ymin ymax]) – skalowanie użytkownika
Axis(‘auto’) – wiadomo…
Axis(‘equal’) – na obu osiach SA takie same zakresy min & max
Axis(‘square’) – wykres kwadratowy
Subplot(il_wiersz, il_kolumn, nr_wykresu) – kilka wykresów w jednym oknie
Figure(x) – x to nr okna graficznego; każde okno to osobny proces
Semilogx(x,y) – kreśli wykres o skali logarytmicznej dla x
Semilogy(x,y) – kreśli wykres o skali logarytmicznej dla y
Loglog – dla obu
Polar(k,r) – kreśli wykres od środka… takie kółko wychodzi…
Stairs(y) - wykres schodkowy
Bar(y) – wykres słupkowy
X=linspace(min,max,ile) – punkty :P
[x,y] – meshgrid(xmin:krok:xmax) – tworzy dwie takie same macierze z tym ze jedna po osi x a druga po
y.
3. wykresy trójwymiarowe
mesh(z) – siatka 3D
surf(x,y,z) – powierzchnia zamiast siatki
axis – skaluje… nawet na 3d… chociaż mi to nie działa ale tak podano na wykładzie…
view(kierunek, wznios) – obraca wykres… tez nie działa ale na wykładzie tak było…
contour(z) – wykres poziomowy
contour(x,y,z) – też…
macierz 3d
macierz 3d tworzy się tak ze najpierw tworzy się macierz 2d i potem robi się z tego 3d poprzez:
A(:,:,n) = [jakąś pasująca macierz]
Ndims(A) – pokazuje ile stron ma macierz 3d
Cat(n, macierz, macierz) – sklejanie macierzy gdzie n ma albo 1 albo 2 albo 3…
Repmat(A,[wiersze kolumny strony]) – replikuje macierz A.
Przeszukiwanie macierzy kolega na podaniu funkcji
Find(warunek)
Nie wiem jak to działa ale na pewno nie wyszukuje tego logicznie… :P
A(find(A>5))= 0 – czyli elementy większe od 5 zamieo na 0
Isnumeric (A) – zwraca wartośd logiczna 1 gdy macierz jest numeryczna a 0 gdy jest to np. litera
Islogical(A) – odwrotnie…
Ischar(A) – chyba nie trzeba tłumaczyd…
Isstr(A) – string…
Isinf(A) – jeśli zmienna jest niesamowicie duża
Isnan – jeśli zmienna jest typu NAN
Isglobal – zmienna globalna czy lokalna
Exist(A) – jeśli zmienna w ogóle istnieje to prawda
All i any… dwie instrukcje możliwe do użycia w warunkach i pętlach
If All(A>2)…
If Any(A>2)…
Polyfit(x,y,n) aproksymacja danych za pomocą wielomianu rzędu n
Rozdział 3
Kochana teoria z CADów…
CAD – Computer Aided Design
CADD – CAD + drafting (programy kreślarskie)
CAM – “CAMe to my baby” albo “I am CAMing :D” Computer Aided Manufacturing
CIM – Computer Integrated Manufacturing
CAD/CAM - …
CAE – Computer Aided Engineering
CAP – Computer Aided Planing
CAT – Pusi CAT :D … bez tego CAT to zdanie brzmi o wiele lepiej :D ------||------ Testing
CAQ - ------||------ Quality testing
GIS – geograpfic information system…
1963r – SKETCHPAD (MiT)
1964 – DAC-1 (GM)
1965 – GRAPHIC -1 (Bell)
1973 – CAD sie zaczyna
AutoCAD2.6 – około 200 funkcji
AutoCAD2000-około 12 tysięcy funkcji…
Styknie… pierdziele… idę spad… siedzę nad tym już dobre 12h i mam dośd ;/ jak ktoś cos chce to niech
dopisze… jest to open source. … qrwa napisze w Wordzie 2k7 open source i dajcie spacje… i kto tu jest
zboczony…