matlab od krzyska

  1. Funkcje matematyczne

Argumentem może być nie tylko liczba, ale również macierz lub wektor (czy też liczba zespolona etc.)

Podstawowe:

- Sin(x) – nie trzeba tłumaczyć. Jeżeli argumentem będzie macierz, policzy sinus każdego elementu.

- sqrt(x)

- exp(x) – podnosi liczbę do potęgi (a=exp(1))

- log10(x)

- log2(x)

Zaokrąglenia:

- floor(x) – zaokrągla w dół

- ceil(x) – zaokrągla w górę

- fix(x) – wyrzuca rozwinięcie dziesiętne (obcina wszystko po przecinku)

- round(x) – standardowe zaokrąglanie - zgodnie z zasadami matematycznymi

  1. Funkcje na macierzach

- det(A) – wyznacznik

- rank(A) – rząd

- inv(A) – zwraca macierz odwrotną

// przykład:

// Oblicz równanie liniowe: A*x=b (A-macierz, x-niewiadoma, b-jakaś stała)

// x=inv(a)*b;

// x=(A^(-1))*b;

// x=A\b; -> najszybszy sposób

- diag(A) – zwraca przekątną macierzy A

// Jeżeli jako argument podamy wektor, to utworzymy macierz diagonalną

- fliplr(A) – lustrzane odbicie macierzy

- flipud(A) – odwrócenie macierzy do góry nogami

- rctgo(A) – obraca macierz o 90 stopni (oczywiście przeciwnie do wskazówek zegara)

- trin(A) – zwraca macierz z elementami nad przekątną podanej macierzy (górny trójkąt macierzy – elementy pod przekątną są zerowane)

- tril(A) – na odwrót – zwraca dolny trójkąt macierzy (pod przekątną)

  1. Programowanie w MATLABie

- FOR

Składnia:

for zm=wektor

.

.

.

end

Przykłady:

for i=10:-1:0

end

leci od 10 do -1 z krokiem 0

for k=[1 4 7 0 5 2 3]

end

Wektor może być zdefiniowany w formie jawnej, lub krokowej.

Zamiast wektora można również podstawić macierz.

for k=1:10

v(k)=k^3;

Potęgi od 1 do 10 (??? O co kurwa tutaj chodzi?:X)

To działa, ale jest niepoprawne – istnieje problem z przydzielaniem pamięci. Np. dla 1.000.000 przydziela pamięć dla 1.000.000 elementów. Większość czasu jest zmarnowana na przydzielanie pamięci.

Poprawna wersja wygląda następująco:

v=zeros(1,10);

for k=1:10

v(k)=k^3;

end

lub z tego co zrozumiałem przy przepisywaniu…

for k=10: -1 :1

v(k)=k^3;

end

Najlepszy sposób(gdyż MATLAB interpretuje wtedy tylko jedną linię:

v=(1:10).^3;

- WHILE
Składnia:

while warunek_logiczny

.

.

.

end

Warunki logiczne:

==

<

>

<=

>=

~= (negacja. Czyli pewnie to samo co != czy <>)

& (AND)

| (OR)

Warto zwrócić uwagę, że są to pojedyncze znaki, a nie tak jak w C.

Przykłady:
s=0;

while s~=100

s=s+0.01;

end

W tym przykładzie był zły warunek – powinien być <=100, ponieważ system binarny nie trafi w 100 (?!WTF?!?!?!?!?!?!?!?!?!)

- IF
Składnia:

if warunek_logiczny_1

.

elseif warunek_logiczny_2

.

elseif warunek_logiczny_3

.

else

.

end

break; – przerwanie pętli

continue; - wraca na początek pętli

  1. Jakieś denne info?

Program matlabowy zapisywany jest w plikach *.M. Wpisując *.M wywołujemy M-plik. (gdzie wpisując?:X)

M-plik może być:

- skryptem

Ciąg poleceń, jakie matlab ma wykonać.

Są przejrzyste ze względu na dostęp do poleceń, dostęp do workspace’a.

Przykład:

Test.m -> tworzymy m-plik

%opis

%opis // (te ostatnie 2 linie to są komentarze)

x=0:0.01:10;

y=sin(x)+ccs(x);

(help Test wyświetli komentarze zawarte w %opis)

- funkcją

Słowo kluczowe – function.

Function[x,y]=proba(a,b,c)

[x,y]-list parametró zwracanych

(a,b,c) – parametry zwracane (WTF again.)

Nazwa funkcji MUSI być taka sama jak pliku – proba.m.

  1. Funkcje - przykłady

Function[x,y]=proba(a,b,c)

%opis

%opis

x=a+b-c;

y=a+b+c;

(return; nie jest potrzebne [bez argumentów] – WTF one more time)

Help proba - wypisuje komentarze.

  1. Różnice skrypt < - > funkcja

Funkcja jest hermetyczna – tzn. wszystkie jej zmienne są lokalne. Nie widzi też ona pamięci MATLABa.

Wszystkie zmienne są przekazywane przez wartość.

- nargout (pierwsza litera to może być też ‘r’ lub ‘v’ – naprawdę trudno to rozczytać:X) – zwraca ilość argumentów zwracanych przez funkcję

to na obrazku zwraca ilość argumentów, jakie funkcja musi wyliczyć (?;/ pewnie ilość argumentów, które funkcja przyjmuje…)

Funkcje można wywoływać z różną ilością argumentów. ( szkoda, że nie napisał, co wtedy…)

Przykład:

function[x,y]=proba(a,b,c)

if uaryin(to, co na obrazku kurwa) == 1 //jeśli wywołałem funkcję z jednym argumentem

b=2;

c=5;

elseif uaryin == 2 //z dwoma argumentami

c=10;

end

x=a+b-c;

y=a*b*c;

proba(1) – przekazuje 1 argument

proba(1,3) – w argumenty etc.

proba(1) -> przeszukuje toolboxy, katalog roboczy

chdir ‘i:/matlab’ – ścieżka do katalogu

Jeżeli nie utworzymy funkcji w katalogu roboczym, to MATLAB pomija (wtf again )

  1. Obejście hermetyczności funkcji

global zm – tworzy zmienna globalna (nie poleca się nadużywania zmiennych globalnych)

  1. Jakieś tam funkcje ;o

min(a,b) – nie zamierzam tłumaczyć

min(v) – wektor też działa.

min(M) – zwraca wektor najmniejszych elementów w każdej kolumnie

to samo z funkcją max().

sum(v) – suma elementów wektora

sum(M) – wektor sum dla każdej kolumny

prod(v) – iloczyn elementów wektora

prod(M) – iloczyn elementów macierzy (chyba też dla każdej kolumny)

mean<albo meun – chgw>(v) – średnia arytmetyczna wektora

mean<patrzy wyżej>(M) – średnia arytmetyczna dla każdej kolumny

std(v) – odchylenie standardowe

std(M) – wektor odchyleń standardowych dla każdej kolumny (widzicie analogie? ^_-)

Przykłady:
sum(sum(A)) – największy element macierzy

sum(A’) – wektor sum dla kolejnych wierszy macierzy

prod(1:n) – silnia

sum(sum(A)) – suma wszystkich elementów macierzy

Dalej funkcje:

eval(‘…’) -> przekazuje tekst, który jest interpretowany i wykonywany

Przykład:

eval(‘x=sin(pi)’); -> przekazuje tekst i oblicza wartość. Wynik: x=0.

Mocne polecenie! (?;o)


Wyszukiwarka

Podobne podstrony:
2. Matlab, aaa, studia 22.10.2014, Materiały od Piotra cukrownika, metody numeryczne w technice, lab
ModelskiP LP12 MMS, studia, Budownctwo, Semestr IV, od Radka, mechanika budowli matlab
Matlab co tam, aaa, studia 22.10.2014, Materiały od Piotra cukrownika, metody numeryczne w technice,
ModelskiP LP12 LW, studia, Budownctwo, Semestr IV, od Radka, mechanika budowli matlab, ModelskiP LP
ModelskiP LP12 K, studia, Budownctwo, Semestr IV, od Radka, mechanika budowli matlab, kratownica go
ModelskiP LP12 MMP, studia, Budownctwo, Semestr IV, od Radka, mechanika budowli matlab, ModelskiP L
ModelskiP LP12 L, studia, Budownctwo, Semestr IV, od Radka, mechanika budowli matlab, ModelskiP LP1
test z ubezpieczen, STUDIA UE Katowice, semestr I mgr, od Agaty, FiR, system ubezpieczeń patrz www.k
Ubezpieczeni - testy-, STUDIA UE Katowice, semestr I mgr, od Agaty, FiR, system ubezpieczeń patrz ww

więcej podobnych podstron