background image

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: 
 

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 

background image

 
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]; 

background image

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: 
 

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 
 
 
 
 

background image

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 

background image

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. 
 
 
 

background image

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’) 
 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

background image

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) 

background image

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: 

background image

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 

 

 

 

 

 

 

 

 

 

 

 

 

background image

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…