Matlab ch ka środowiska

background image

MATLAB



Charakterystyka środowiska


Mathworks Inc.

www.mathworks.com

.


Podstawowe właściwości:

• możliwość pracy w trybie interakcyjnym

• możliwość pracy w trybie wsadowym (interpretacja

skryptów tzw. M – plików) oraz realizacja
skompilowanych plików typu MEX (automatyzacja
procesu przetwarzania dużej ilości danych)

• możliwość wywoływania programów napisanych w

innych językach np. C++, Fortran

• możliwość korzystania z możliwości obliczeniowych

Matlaba z poziomu innych programów napisanych w
C++, Fortranie

• możliwość zmiany platformy sprzętowej (łatwe

przenoszenie m- skryptów na inne platformy)

• otwarta architektura pakietu – łatwość wzbogacania

bibliotek własnymi (pozyskanymi) funkcjami (inaczej niż
np. STATISTICA)

• możliwość budowy własnego interfejsu (dostępne

elementy interfejsu użytkownika takie jak: przyciski,
listy, menu itd… (możliwość budowy profesjonalnie
wyglądającej aplikacji)

• bardzo rozbudowane możliwości graficznej prezentacji

wyników z możliwością eksportu (zapisu) rysunku w
wielu formatach

background image

• grafika obiektowo zorientowana

• łatwość importu i eksportu danych z (do) plików

binarnych i tekstowych

• możliwość bezpośredniej współpracy ze sprzętem

pomiarowym (także procesory sygnałowe)

• zaawansowana algebra macierzy

• możliwość pracy z liczbami zespolonymi

• setki gotowych funkcji

• łatwość kodowania operacji (przejrzysty i prosty język

wysokiego poziomu)

• bardzo bogata biblioteka modułów:

- sieci neuronowe,
- logika rozmyta,
- algebra symboliczna
- optymalizacja
- identyfikacja systemów
- przetwarzanie cyfrowe sygnałów
- rozwiązywanie równań różniczkowych
cząstkowych
- pakiet do modelowania analogowego

(SIMULINK)

- transformata falkowa
- eksperymentalna analiza modalna (identyfikacja

postaci drgań i częstotliwości)

• możliwość pracy z multimediami (np. obsługa karty

dźwiękowej pozwala na wykorzystanie tego urządzenia
jako „przetwornika A/C”)

• możliwość tworzenia animacji

• środowisko zintegrowane (Edytor/Debugger)

background image

Praca z MATLABEM

Ver.4, 5

background image

ver 6.

background image

*Praca interaktywna poprzez bezpośrednie podawanie
komend
* Uruchamianie m- skryptów poprzez podanie nazwy
skryptu (lub uruchomienie z menu) z zapisanymi
poleceniami


Praca z debuggerem (ver 5 i 6)


*breakpoints
*step
*step in
*step out

Błędy składni (syntaktyczne) są wyłapywane tuż przed
uruchomieniem skryptu. Matlab podaje dokładną
informację o pochodzeniu błędu.
W trakcie działania programu wyłapywane są również
błędy semantyczne np. niezgodność wymiarów tablic itp…

Foldery robocze


Standardowo pliki użytkownika obsługiwane są w folderze
„work” (ver 5, 6) każdy inny folder użytkownika należy
wskazać wybierając opcję FILE/SET PATH
W ver 4. odpowiednich zmian dokonuje się w tekstowym
pliku konfiguracyjnym matlabrc.m


background image

Podstawowe działania

Przypisania

>> zmienna = wyrażenie

>> a=2*3.14

odpowiedź:
a= 6.28

>>zmienna = wyrażenie;

>> b = a*a;

odpowiedź: brak
b ma wartość 39.4384

>> wyrażenie


>> b-10

odpowiedź:
ans = 29.4384

Wywołanie funkcji

zmienna = nazwa funkcji (parametry)

a = fft (x);
[a b] = licz (1 , 6);


background image

Umieszczanie komentarzy

% komentarz do końca linii

r=1.2;
a = 3.14*r*r; %a zawiera pole koła
% b = 2*3.14 *r – to się nie wykona

Wprowadzanie danych (1)


Wektor = [1 2 3 4 5 6 7 8];

Macierz = [1 2 3; 4 5 6; 7 8 9]
%wiersze oddziela średnik

odpowiedź:
Macierz = 1 2 3
4 5 6
7 8 9

Tablicowanie danych

Min:krok:max
Min:max

np.
Wektor = 1:1:8;
Wektor = 1:8;
Macierz = [1:3; 4:6; 7:9];

InnyWektor=0:0.1:5;


background image

Łączenie macierzy

A=[1:3;4:6]

A =

1 2 3
4 5 6

>>
B=[7:9;10:12]

B =

7 8 9
10 11 12

>>
C=[A B]

C =

1 2 3 7 8 9
4 5 6 10 11 12

>> C=[A; B]

C =

1 2 3
4 5 6
7 8 9
10 11 12

background image

Zapisywanie łańcuchów tekstowych


Zmienna = ‘treść’;

tekst = ‘Matlab jest OK’;

Dostęp do elementów macierzy

zmienna = zmienna(index1, index2)
zmienna(index1, index2)


A = [1 2 3;
4 5 6;
7 8 9];

b=A(1,2)

odpowiedź:
b=2

A(3,2)

odpowiedź:
ans = 8






background image

operator zakresu „:”

A = [1 2 3;
4 5 6;
7 8 9];
B= A(:,1)

odpowiedź:
B =

1
4
7


B=A(1:2,:)
odpowiedź:
B =
1 2 3
4 5 6

B=A(1:2, 2:3)
odpowiedź:
B =
2 3

5 6





background image

A(:,1)= [ 7 ;7; 7]

odpowiedź:

A =

7 2 3
7 5 6
7 8 9


Wektor= 1:10;
InnyWektor=Wektor(1:2:10)

odpowiedź:

InnyWektor =

1 3 5 7 9

Operatory rozmiaru

[wierszy, kolumn] =size(zmienna)
size(zmienna)

size(Wektor)

odpowiedź
ans = 1 10



background image

[w k]=size(A)

w =

3


k =

3

dlugosc =length (zmienna)
length(zmienna)


C=[1:10;2:11];

Dl=length (C)

Dl = 10













background image

Znaki i operatory specjalne – podsumowanie

=

przypisanie

A=B

[ ]

wyszczególnienie elementów podczas tworzenia

macierzy, wektorów

A=[ 1:5:100];

( )
odwołanie do elementów tablicy, ustalanie
kolejności operacji, przekazywanie parametrów
do funkcji

A=B(1,2)

D=A*(B+C);

E= sin(2*3.14+0.1);

.
znak kropki dziesiętnej (bez względu na ustawienia
w Windows)

pi=3.14

kontynuacja polecenia w następnej linii

A= zmienna1-zmienna2+zmienna3 * …
zmienna4;


background image

, separator indeksów, argumentów wywołań funkcji

A=B(1 , 1:3)
A=[1,2,3]; % zamiast A=[1 2 3]


E= licz(1,alfa);

; koniec wiersza macierzy, blokada odpowiedzi
Matlaba

A=[1 2; 0 4;0 1];
Brak odpowiedzi

A=[1 2; 0 4; 0 1]
odpowiedź:
A= 1 2
0 4
0 1


% komentarz

:
operator zakresu elementów, tablicowanie wartości

A= B(1:3)

A=1:2:6;

‘ ‘
zapis łańcuchów

‘To jest ciąg znaków – łańcuch’

background image

Operatory arytmetyczne

+ dodawanie

C=A+B +3.0;

- odejmowanie

C= A-B

* mnożenie macierzy (zgodność ilości kolumn i wierszy),
mnożenie macierzy i stałej

C=A*B
C=4*A;

.* mnożenie elementów wektora (macierzy)

A=[1 2];
B=[3 4];

C=A.*B

C=[1*3 2*4]= [3 8]

^
Podnoszenie do potęgi (macierzowe)


C=A^2;

.^ Podnoszenie do potęgi tablicowe

C=[1 2].^2
C=[1 4]

background image

/ dzielenie macierzowe, lub przez stałą (\ dzielenie
lewostronne)

A/B ( A*inv(B))

A\B ( inv(A)*B)

./
dzielenie tablicowe

A./B - każdy element A przez odpowiadający mu
element B

A.\B (B./A)

transpozycja macierzy (przekształcenie wektora)

A=[1 2
3 4]
B=A’

B= 1 3
2 4

W=[1 2 3 4];

W’
ans= 1
2
3
4



background image

Operatory logiczne

== operator równości

a=3.14;
b=pi;

a= =b - zwraca 1 (prawda) jeżeli a jest dokładnie

równe b inaczej zwraca 0 (fałsz)


<, > ,>=, <=, ~=
operatory relacji


a<b % 1 prawda (mniejsze)
a>b % 0 fałsz (większe)
a<=b %1 prawda (mniejsze równe)
a>=b % 0 fałsz (większe równe)
a~=b % 1 prawda (różne)

& operator logiczny “i”


wyr1 & wyr2 &….


wyr1 P F P F
wyr2 P P F F
wyr1 & wyr2 P F F F

a<b & b>3 % 1 prawda


background image

| operator logiczny „lub”

wyr1 | wyr2

wyr1 P F P F
wyr2 P P F F
wyr1 | wyr2 P P P F

a <b | a<0 % 1 prawda


~ operator negacji

~wyr

wyr P F
~wyr F P

~(a>b) % 1 prawda


xor -
operator różnicy symetrycznej

xor (wyr1,wyr2)

wyr1 P F P F
wyr2 P P F F
xor(wyr1,wyr2) F P P F




background image

Operatory logiczne w zastosowaniu do macierzy

A=[1 2 3;
4 5 6;
7 8 9]
» B=A>3
B =
0 0 0
1 1 1
1 1 1

C=A(B)
C =
4
7
5

8
6
9

W=[1 2 3 4 5 6 7];
» D=W>3 & W<6
D =
0 0 0 1 1 0 0

» W(D)

ans =

4 5



background image

Funkcje logiczne


all – wszystkie elementy wektora są niezerowe

W=[ 1 2 3];
all (W)

ans = 1

A=[ 1 2 3;
4 5 0;
6 7 8];

all (A)
ans = 1 1 0


any – jakikolwiek element wektora jest niezerowy

any(A)

ans= 1 1 1

isinf – argument jest +Inf lub – Inf

isinf(1/0)
Warning: Divide by zero
ans = 1




background image

isempty – argument jest macierzą pustą

a =

[]

» isempty(a)

ans =

1
strcmp – porównywanie łańcuchów

la=’aab’;

strcmp(la,'aac')

ans = 0

%odwołania do elementów łańcucha jak do elementów
%tablicy

o=’aac’;
strcmp(la(1:2),o(1:2))
ans =1







background image


isreal
– wszystkie elementy argumentu są rzeczywiste

a=[1i+2 2i+1 ;0i+3 0i+4]

a =

2.0000 + 1.0000i 1.0000 + 2.0000i
3.0000 4.0000

» isreal(a)

ans = 0

Zmienne specjalne i stałe

ans – zmienna robocza
i,j - jednostki urojone

1


lzesp=2i+3;

pi - 3.14159265358979…

realmax – największa dostępna liczba rzeczywista
1.797693134862316e+308

realmin – najmniejsza dostępna liczba rzeczywista
2.225073858507202e-308


background image

Niektóre polecenia środowiska

who - informacja o wszystkich zmiennych

>> who

Your variables are:

a b

whos –
zaawansowana informacja o zmiennych

>> whos
Name Size Bytes Class

a 2x3 48 double array
b 2x3 48 double array


clear – likwidowanie definicji zmiennych (zwalnianie
pamięci)

clear all
– wszystkie zmienne
clear zmienna – konkretna zmienna


help wyrażenie –
uzyskiwanie informacji o funkcjach
(wyrażeniach)
np. help fft
help isinf

background image

save – zapis danych do pliku

save ‘dane.txt’ A –ascii
%zapis macierzy A do pliku „dane.txt” w trybie tekstowym

save ‘dane.dta’ A
% zapis w trybie binarnym

save dane A
%zapis macierzy A jako plik „dane.mat”
% możliwość odczytu przez program

save dane
%zapis wszystkich danych z przestrzeni roboczej do pliku
dane.mat

Wprowadzanie danych(2)

load – odczyt danych pliku
save ‘dane.txt’ A –ascii
……..
load ‘dane.txt’
srednia=dane/length(dane);

save dane A
…..
load dane

save dane
….
load dane

background image

quit, exit – zakończenie pracy z MATLABEM
format –
zmiana formatu wyświetlania liczb


format short
(5 cyfr)
pi
ans = 3.1416


pi*1000
ans =3.1416e+003

format long (15 cyfr)
format rat
- prezentacja w postaci ułamka

format short
B =
1.1000 2.1000 3.1000
4.1000 5.1000 0.1000
6.1000 7.1000 8.1000
format rat
B =

11/10 21/10 31/10
41/10 51/10 1/10
61/10 71/10 81/10






background image

Priorytety operatorów

* potęgowanie macierzowe i tablicowe (^, .^), transpozycja

(‘)
* jednoargumentowa zmiana znaku (-)

-a

* mnożenie, dzielenie
* dodawanie, odejmowanie

a=[1 2 3]

a =

1 2 3

» b=[3 4 5]

b =

3 4 5

» a+b.^2

ans =

10 18 28


background image

Wprowadzanie danych (3)

zeros(k,w) - wypełnianie macierzy zerami

A=zeros(1,5)

A = 0 0 0 0 0

B=zeros(size(A)); % zagnieżdżanie poleceń


ones(w,k) - wypełnianie jedynkami

rand(w,k)
– losowanie zmiennych o rozkładzie jednorodnym
(funkcja gęstości prawdopodobieństwa prostokątna). Zakres
liczb od 0 do 1.

randn(w,k) - losowanie zmiennych o rozkładzie normalnym.
Wariancja 1, średnia 0.

Podstawowe funkcje

max – szukanie wartości maksymalnej
[ wartość index] =max(tablica)


t=[1 2 10 4 5 0 ];
» [w i]=max(t)

w = 10
i = 3

w=max(t)
w=10

background image

[ wartość index] =max(macierz)

M=[1 2 3; 4 5 6;0 9 2]
M =

1 2 3
4 5 6
0 9 2

» [w i]=max(M)

w =

4 9 6

i =

2 3 2

min
– analogicznie do max

sum- wyznaczanie sumy elementów

zmienna=sum (wektor)

s=sum(t)
s=22
nowywektor=sum (macierz)

sum(M)

ans = 5 16 11

background image

mean – wyznaczenie wartości średniej


format rat
mean(M)

ans =

5/3 16/3 11/3

abs – wyznaczanie modułu

M=
0 + 3.1416i 0.6931 + 3.1416i 1.0986 + 3.1416i
1.3863 + 3.1416i 1.6094 + 3.1416i 1.7918 + 3.1416i
-Inf 2.1972 + 3.1416i 0.6931 + 3.1416i

abs (M)

ans =

3.1416 3.2172 3.3281
3.4339 3.5299 3.6166
Inf 3.8337 3.2172








background image


M =

-1 -2 -3
-4 -5 -6
0 -9 -2

abs(M)

ans =

1 2 3
4 5 6
0 9 2

sign – funkcja znaku

sign(M)

ans =

-1 -1 -1
-1 -1 -1
0 -1 -1

sqrt – pierwiastek kwadratowy

k=sqrt(-1)
k =

0 + 1.0000i

background image

std – odchylenie standardowe
median - mediana

M =

-1 -2 -3
-4 -5 -6
0 -9 -2


» median(M)

ans =

-1 -5 -3

round –
zaokrąglenie do najbliżej liczby całkowitej

M =

0.2500 0.5000 0.7500
1.0000 1.2500 1.5000
0 2.2500 0.5000

» round(M)

ans =

0 1 1
1 1 2
0 2 1

background image

floor - zaokrąglenie w dół w kierunku –inf

M =

-0.5000 0.5000 0.7500
1.0000 1.2500 1.5000
0 2.2500 0.5000

» floor(M)

ans =
-1 0 0
1 1 1
0 2 0

fix – zaokrąglenie w dół w kierunku zera
fix(M)

ans =

0 0 0
1 1 1
0 2 0

ceil - zaokrąglenie w górę w kierunku + Inf
ceil(M)

ans =

0 1 1
1 2 2
0 3 1

background image


end
– ostatni element macierzy

A=[1 2 3; 4 5 6; 7 8 9]

A =

1 2 3
4 5 6
7 8 9

>> A(1,end)

ans =

3

>> A(:,end)

ans =

3
6
9








background image


[ ] – macierz pusta

%Usunięcie elementów macierzy

A=[1 2 3; 4 5 6; 7 8 9]

A =

1 2 3
4 5 6
7 8 9

A(:,1)=[]

A =

2 3
5 6
8 9

[ ]
– wybór elementów macierzy wymienionych jako
elementy wektora

A=[1 2 3; 4 5 6; 7 8 9]
B=A([1 3],:)

B =

1 2 3
7 8 9

background image

eye – macierz jednostkowa

A=eye(5)

ans =

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

eye(2,4)

ans =

1 0 0 0
0 1 0 0

Tworzenie macierzy przez zdefiniowanie jej elementu
B(2,3)=3

B =

0 0 0
0 0 3






background image

diag – elementy na przekątnej macierzy

A=[1 2 4; 5 6 7; 8 9 10]

A =

1 2 4
5 6 7
8 9 10

>> diag(A)

ans =

1
6

10


det – wyznacznik macierzy

wyzn=det(A)


inv – macierz odwrotna

A=rand(3,3);
I=inv(A)*A;



background image

fliplr – zamiana kolejności elementów (elementów w
wierszach)

A =

1 2 4
5 6 7
8 9 10

>> fliplr(A)

ans =

4 2 1
7 6 5
10 9 8

flipud – analogicznie w kolumnach


findstr –
poszukiwanie wystąpienia znaków w określonym
łańcuchu

s =’Matlab jest matematycznym laboratorium ’;
findstr(s,'a')
ans=
2 5 14 18 28 32
s(ans)

ans =

aaaaaa

background image



findstr(s,'mat')

ans =

13 17

s(ans)

ans =

mm

findstr(s,'k')

ans =

[]
disp - wyświetlanie łańcucha na ekranie

disp(‘Ten tekst będzie wyświetlony na ekranie’);


‘Ten tekst będzie wyświetlony na ekranie’
ans =
‘Ten tekst będzie wyświetlony na ekranie’

num2str – zamiana wartości liczbowej na łańcuch
(str2num – funkcja odwrotna)
tekst=num2str(pi);
disp([‘Wartość liczby pi wynosi :’ tekst]);
Wartość liczby pi wynosi :3.1416

background image


input – wprowadzanie danych z klawiatury (zastosowanie
w m.skrypcie)
zmienna=input(tekst);
zmienna_tekstowa = input(tekst,’s’);

r = input('podaj a ')
podaj a 2

r =

2

>> r*r

ans =

4

r =input ('podaj a ','s')
podaj a 3
r =
3
>> str2num(r).^2
ans =
9


pause –
wstrzymanie programu
pause(n) – na n- sekund
pause – aż do naciśnięcia klawisza

background image

roots – oblicza pierwiastki wielomianu


%W=x+2 - wektor współczynników wielomianu [1 2]

roots([1 2])

ans =

-2

%W=3x

2

+8x+2


x=roots([3 8 2])

x =

-2.3874
-0.2792

>> 3*x(1)^2+8*x(1)+2

ans =

0


x=roots([3 3 2])

x =

-0.5000 + 0.6455i
-0.5000 - 0.6455i

background image

poly – wyznacza współczynniki wielomainu na podstawie
pierwiastków

wsp=[2 3 4]

wsp =

2 3 4

>> r=roots(wsp)

r =

-0.7500 + 1.1990i
-0.7500 - 1.1990i

>> poly(r)

ans =

1.0000 1.5000 2.0000

>> wsp/2

ans =

1.0000 1.5000 2.0000




background image

Ważniejsze funkcje matematyczne


sin(kąt)
– sinus. Argument w radianach.
cos(kąt) – cosinus. Argument w radianach
asin(argument) – arcsine (funkcja odwrotna do sinusa).
Wartości rzeczywiste funkcja ma w zakresie
argumentów

.

Wynik podawany jest w radianach w

zakresie

. .

acos (argument)– arccosine (funkcja odwrotna do
cosinusa) . Wartości rzeczywiste funkcja ma w
zakresie argumentów

.

Wynik podawany jest w

radianach w zakresie

.


tan(x) –tangens
atan(x) – arcustangens - analogicznie

exp(x) - e

x

log(x) – logarytm naturalny z x
log2(x) – logarytm o podstawie 2 z x
log10(x) – logarytm dziesiętny z x

eig – wartości własne i wektory własne macierzy

d = eig(A) – zwraca wektor wartości własnych macierzy A

[V,D] = eig(A) wartości własne (D) i wektory własne (V)
macierzy A

.

Problem wartości własnych sprowadza się do wyznaczenia
nietrywialnych rozwiązań równania:
A*V = V*D.
fft(x) – transformata Fouriera (N potęga dwójki jak i nie)
ifft(x) – odwrotna transformata Fouriera




background image


Struktury

Grupowanie danych

Nazwa_zmiennej.nazwa_pola

a.czas=1;
a.peak= 4.56;
a.rms= 3.24;


a =

czas: 1
peak: 4.5600
rms: 3.2400


a.czas+1

ans =

2









background image

a(2).czas=20

a =

1x2 struct array with fields:
czas
peak
rms

» a(2)

ans =

czas: 20
peak: []
rms: []


a(1).czas+a(2).czas

ans =

30









background image

Usuwanie pola

rmfield(zmienna, nazwa pola)
rmfield(tablica,nazwa pola)

a=rmfield(a,'peak')

a =

1x2 struct array with fields:
czas
rms

» a(1)

ans =

czas: 10
rms: 3.2400














Document Outline


Wyszukiwarka

Podobne podstrony:
9 Ch ka zadymienia zadymienie
ch ka skokowa
9 Ch ka zadymienia tabelki
ch-ka ogolna, IV semestr, Silniki
9 Ch ka zadymienia L4
9 Ch ka zadymienia L1
9 Ch ka zadymienia ch ka zadymien (2)
Ch ka mechaniczna
ch-ka szybkościowa regulatorowa ZS opis, SiMR, Laboratorium Silników spalinowych
ch ka wyjsciowa
Zaburzenia mowy ch-ka, psychopatologia, logopedia
SIECI O TOPOLOGII SZYNY - OGÓLNA CH-KA, Notatki, Elektronika AGH III rok, Pendrive, dodatkowe, moje
ch-ka ogolna, STUDIA WRZESIEŃ, Silniki sprawka, oD SUBERLAKA, silniki spalinowe, Sprawka
ch-ka szybkościowa regulatorowa ZS, SiMR, Laboratorium Silników spalinowych
9 Ch ka zadymienia L2
CH-ka zewn., silniki spalinowe
ch-ka zewnetrzna silnika, STUDIA WRZESIEŃ, Silniki sprawka, oD SUBERLAKA, silniki spalinowe, Sprawka

więcej podobnych podstron