background image

1

Pakiet programu MATLAB

Andrzej Tytko, prof. AGH

background image

2

MATLAB – pakiet

MATLAB

 (

MAT

rix 

LAB

oratory)

Uniwersalny język programowania wysokiego poziomu, przeznaczony do 
wykonywania obliczeń naukowo-inżynierskich w takich dziedzinach jak 
automatyka, elektronika, elektrotechnika. Integruje obliczenia, wizualizację i 
programowanie w środowisko, w którym stawia się problemy i otrzymuje 
rozwiązania wyrażane w znanej notacji matematycznej.

 

Program powstał w wersji komercyjnej w 1987 roku.

Producentem  jest  firma  The  Math  Works,  Inc.  z  Nattic,  Massachiussets, 

USA.

http://www.mathworks.com/

 

System MATLAB składa się z następujących głównych części:

język MATLAB,

środowisko pracy w MATLAB,

biblioteka funkcji graficznych,

biblioteka funkcji matematycznych

,

interfejs programowy do komunikacji z innymi językami (C++, Fortran)

dodatkowe programy (MATLAB Extensions: Applix Link, Excel Link, MATLAB Compiler, 

MATLAB C++, Math Library)

biblioteki dodatkowe (MATLAB Toolboxes),

 

nakładka  Simulink

  stanowiąca  wygodny,  interaktywny  interfejs  graficzny  do 

projektowania  i  badania  ciągłych,  dyskretnych  i  mieszanych  układów  regulacji  i 

sterowania.  Z  nakładką  Simulink  mogą  współpracować  dodatkowe  elementy:  Real 

Time 

background image

3

MATLAB – możliwości

•Math and computation (obliczenia matematyczne) 

•Algorithm development (tworzenie algorytmów)

•Data acquisition (zbieranie danych)

•Data analysis, exploration, and visualization (analiza danych, 
przetwarzanie, wizualizacja)

•Modeling, simulation, and prototyping (Modelowanie, symulacja, 
prototypowanie)

•Scientific and engineering graphics (Rysowanie inżynierskie i naukowe)

•Application development, including graphical user interface building 
(Budowa aplikacji w tym GUI – interfejsu graficznego użytkownika)

background image

4

MATLAB – literatura

Brzóska j., Dobroczyński L.: Programowanie w Matlab. Wyd. MIKOM, 
Warszawa 1998
Mrozek B., Mrozek Z.: Uniwersalne środowisko do obliczeń naukowo-
technicznych
, Wyd. PLJ, Warszawa 1996
Mrozek B., Mrozek Z.: Uniwersalne środowisko do obliczeń naukowo-
technicznych. Poradnik użytkownika
, Wyd. HELION, Gliwice 2004

Matworks Inc.: MATLAB, The Language of Technical Computing. Release 
Notes for Release 13
Kowalska A., Pińczyk B.: Matlab. Przykłady i zadania. Wyd. MIKOM, 
Warszawa 2002
Regel W.: Wykresy i obiekty graficzne w programie Matlab. MIKOM, 
Warszawa 2003
Regel W.: Obliczenia numeryczne i symboliczne w programie Matlab
MIKOM, Warszawa 2004
Regel W.: Przykłady i wiczenia w programie SIMULINK.  MIKOM, Warszawa 
2004

Regel W.: Statystyka matematyczna w programie Matlab. MIKOM, Warszawa 
2003
Osowski S., Cichocki A., Siwek K.: MATLAB w zastosowaniu do obliczeń 
obwodowych i przetwarzania sygnałów. 
Oficyna Wydawnicza Pol. 
Warszawskiej. Warszawa 2006

Protap R.: MATLAB 7 dla naukowców i inżynierów. Wyd. Naukowe PWM 
MIKOM, Warszawa 2007

T. Zieliński: Cyfrowe przetwarzanie sygnałów. WKŁ, Warszawa 2005

background image

5

MATLAB – zalety pakietu

Najważniejsze zalety MATLAB:

•Macierz  jako  podstawowy  typ  danych  (nie  ma  potrzeby  deklarowania 

wymiaru)

•Funkcje matematyczne mają oczywistą składnię,

•Jednakowy  typ  danych  (macierz)  we  wszystkich  składnikach 

oprogramowania, 

•Programy składane są z elementarnych jednostek, 

•Korzystanie  z  bibliotek  zawierających  gotowe  procedury  rozwiązujące 

problem, 

•Wymiana  danych  między  aplikacjami  MS  Windows  (dane  mogą  być 

przesyłane do Excela), 

•Możliwość  przenoszenia  M-plików  na  różne  komputery  (M-pliki  to  pliki 

ASCII), 

•M-pliki  mogą  być  edytowane  za  pomocą  dowolnych  edytorów 

tekstowych,

•Możliwość  przenoszenia  danych  za  pomocą  MAT-plików  (MAT-pliki  są 

plikami binarnymi  tworzonymi poleceniem save MATLAB),

•MAT-pliki są standardową postacią zapisu danych liczbowych w MATLAB 

(są  zależne  od  sprzętu,  ale  mogą  być  przenoszone  pomiędzy  różnymi 

komputerami, gdyż w nagłówku pliku zapisany jest jego typ,

•Program znany w środowiskach akademickich na całym świecie,

•Możliwość  rozwiązania  prawie  wszystkich  problemów  możliwych  do 

zapisania matematycznego

•Otwartość i łatwość w przekształcaniu M-plików, 

•„Debugger” wbudowany w edytor MATLAB, 

•Gotowe programy typu „kliknij” i oblicz,

•Rysunki mają postać wektorową

 

background image

6

MATLAB – „wady” pakietu

Najważniejsze „wady” MATLAB:

•Konieczność znajomości zasad rachunku wektorowego i macierzowego,

•Znajomość funkcji i rozumienie przekształceń matematycznych,

•Konieczna znajomość języka MATLAB (składnia i gramatyka),

•Wiele zmiennych – zalecane proste i czytelne nazwy np. dane_moc 

•MATLAB nie preferuje instrukcji w pętli: for, if, then na rzecz notacji 

dwukropkowej 

•Konieczność opisywania fragmentów M-plików w celu zapamiętania ich 

działania,

•Pliki skryptowe w ostateczności, raczej pliki funkcyjne,

•Przy przenoszeniu danych za pomocą binarnych MAT-plików należy 

pamiętać o notacji kropkowej dla liczb dziesiętnych,

•Przy przenoszeniu danych za pomocą EXCEL należy pamiętać o 

wyczyszczeniu komórek i zapisie tablicowym oraz o zastąpieniu przecinka 

w liczbach dziesiętnych kropką,

 

background image

7

MATLAB – „wady” pakietu

Najważniejsze „wady” MATLAB:

•Przy modyfikowaniu M-plików należy pamiętać aby nadać im nowe nazwy 

i umieścić we właściwym katalogu,

•Polecana jest praca nad danym problemem w oddzielnym katalogu,

•Możliwości graficzne MATLAB są ograniczone w porównaniu z innymi 

aplikacjami,

•Występują klasyczne problemy z dzieleniem przez 0 i z bardzo dużymi i 

bardzo małymi liczbami,

•Wiele użytecznych procedur znajduje się w dodatkowych Toolbox

•Przy edytowaniu plików łatwo pomylić: ( ) z [ ]; , z ; ‘ ’ z ich brakiem

 

background image

8

MATLAB – Toolboxes (ver. 6.5)

Communications Toolbox 
Instrument Control Toolbox, Control System Toolbox, 
System Identification Toolbox (ARIMA)
Database Toolbox 

Neural Network Toolbox, Wavelet Toolbox (DWT), Fuzzy Logic Toolbox

Data Acquisition Toolbox, 

Signal Processing Toolbox

, Filter Design Toolbox

Optimization Toolbox, System Identification Toolbox

Curve Fitting Toolbox, Spline Toolbox,

 Datafeed Toolbox

Financial Derivatives Toolbox, Financial Toolbox, Financial Time Series 
Toolbox

Statistics Toolbox
Symbolic Math Toolbox (MAPLE)

Virtual Reality Toolbox
Image Processing Toolbox 

Partial Differential Equation Tool (MES)

background image

9

MATLAB and Simulink (ver 6.5)

SIMULINK
Simulink
SimMechanics
SimPowerSystems
Real-Time Workshop
Stateflow

MATLAB
MATLAB
MATLAB Link for Code Composer
Studio™ Development Tools
MATLAB COM Builder
MATLAB Report Generator
MATLAB Compiler
MATLAB Web Server
MATLAB Excel Builder

background image

10

MATLAB – ekran z 5 okienkami

background image

11

MATLAB – ekran optymalny

background image

12

MATLAB – edytor tekstowy

background image

13

MATLAB – zmienne

Zmienne:

x = 1
alfa=0.05
liczba_studentów = 25

A=[1,2,3] 

(wiersz)

B=[1 2 3] 

(wiersz)

C=[1;2;3] 

(kolumna)

D-[A;B]

siano=1:0.01:100
kopa=60*siano
grupa=('MSE')

background image

14

MATLAB – zapis liczb 

Zapisy liczb:

3
-99

0.0001
9.6397238     
 

1.60210e-20
6.02252e23 

1i
-3.14159j 
3e5i

1+2i
2*pi

background image

15

MATLAB – formaty liczb

Liczby mogą być prezentowane w następujących formatach:

format (domyślny, identyczny z short)

format short (reprezentacja stałoprzecinkowa pięciocyfrowa)

format long (reprezentacja stałoprzecinkowa piętnastocyfrowa)

format short e (reprezentacja zmiennoprzecinkowa pięciocyfrowa)

format long e (reprezentacja zmiennoprzecinkowa piętnastocyfrowa)

format short g (najlepsza stałoprzecinkowa lub zmiennoprzecinkowa 

reprezentacja pięciocyfrowa)

format long g (stałoprzecinkowa lub zmiennoprzecinkowa reprezentacja 

piętnastocyfrowa) 

format hex (

szesnastkowe wyświetlanie zawartości komórek pamięci

zawierających daną liczbę)

format rat (przedstawia ułamki dziesiętne za pomocą ilorazu małych liczb 

całkowitych)

format compact  (wyłącza wyświetlanie pustych wierszy)

format loose (włącza wyświetlanie pustych wierszy)

format + (wypisuje plusy lub minusy w ciągu liczbowym)

format bank (podaje liczby w układzie zł.gr – 10.21

UWAGA: format wyświetlanych liczb można ustalić z menu File i Preferences

background image

16

MATLAB – wyrażenia matematyczne 

Wyrażenia:

Dane: A, B, C,

x = A; y = B; z = C;

Argumenty: x, y, z,

ans = wyrażenie(x,y,z)

background image

17

MATLAB – funkcje matematyczne 

Funkcje:

Dane: A, B, C,

x = A; y = B; z = C

Argumenty: x, y, z,

y =funkcja(x,y,z)

Funkcje MATLABa:
y=sin(x)
y=ln10(x)

background image

18

MATLAB – podstawowe operatory

Działanie/Oper

ator

Operator

Działanie

+   

Addition

Ddodawanie

-

Subtraction

Odejmowanie

*

Multiplication

Mnożenie tablicow

.*

Multiplicationn (Mx)

Mnożenie macierzowe

/

Division

Dzielenie tablicowe

./

Division (Mx)

Dzielenie macierzowe

\

Left division

Dzielenie od lewej 

strony

^

Power 
(Complex conjugate 

transpose)

Potęgowanie tablicowe

.^

Power 
(Complex conjugate 

transpose)

Protegowanie 

macierzowe

=

Equal

Znak równości

( )

Brackets

Specify evaluation order

Nawiasy
Kolejność obliczeń

background image

19

MATLAB – stałe

Constant / 

Stała

Constant 

Stała

pi

3.14159265….

Ludolfina

i

Imaginary unit, (-1)

1/2

Liczba urojona

j

Same as I

Liczba urojona

eps

Floating-point relative 

precision: 2

-52 

Precyzja liczb 

zmiennoprzecinkowych

realmin

Smallest floating-point 

number, 2

-1022

Najmniejsza liczna 

zmiennoprzecinkowa

realmax

Largest floating-point 

number, (2-)

21023

Najmniejsza liczna 

zmiennoprzecinkowa

inf

Infinity

nieskończoność

NaN

Not-a-number

Brak wartości (rzadkie 

macierze)

e

2,73…

Stała Eulera, tylko w 

równaniach i opisach

background image

20

MATLAB – wyrażenia matematyczne 

podstawowe 

Funkcja

Opis

norm

Matrix or vector normalization

normest

Estimate the matrix 2-norm

rank

Matrix rank

det

Determinanta

trace

Suma elementów

orth

Ortogonizacja

inv

Obracanie macierzy

eig

Wektory własne

poly

Wielomian charakterystyczne

svd

Singular value decomposition

background image

21

MATLAB – wyrażenia matematyczne dla 

macierzy 

Funkcja

Opis

norm

Matrix or vector normalization

normest

Estimate the matrix 2-norm

rank

Matrix rank

det

Determinanta

trace

Suma elementów

orth

Ortogonizacja

inv

Obracanie macierzy

eig

Wektory własne

poly

Wielomian charakterystyczne

svd

Singular value decomposition

background image

22

MATLAB – niektóre wyrażenia matematyczne 

!tree

struktura drzewa katalogowego

%

po tym znaku komentarz

,

separacja indeksów, argumentów funkcji

....

kontynuacja linii

A

macierz

;

koniec wiersza

[ ]

tworzenie macierzy

I

macierz jednostkowa

=

znak równości

<

znak mniejszości

<=

znak słabej mniejszości

>

Znak większości

>=

znak słabej większości

abs

wartość bezwzględna

angle

kąt 

ans

wynik

any

logiczna prawda

atan

arcustangens

background image

23

MATLAB – wyrażenia (1)

Polecenie / symbol

Definicja

!tree

struktura drzewa katalogowego

%

po tym znaku komentarz

,

separacja indeksów, argumentów 

funkcji

....

kontynuacja linii

A

macierz

;

koniec wiersza

[ ]

tworzenie macierzy

I

macierz jednostkowa

=

znak równości

<

znak mniejszości

<=

znak słabej mniejszości

>

znak

>=

znak słabej większości

abs

wartość bezwzględna

angle

kąt 

ans

wynik

any

logiczna prawda

background image

24

MATLAB – wyrażenia (2)

axis, axes

oś, osie

bar

wykres słupkowy

box

wykres pudełkowy

break

przerwanie pętli

case .. otherwise

zmienna przełączająca  

char

zmienna tablicowa

cla

usuwa obiekty

clc

czyści okno

clear

usuwa zmienne

clf

czyści figurę

close

zamknięcie okna graficznego

conj

liczby zesp. sprzężone

contour

wykres konturowy

conv

splot (mnożenie wielomianów)

corrcoef

współ. korelacji

cos

cosinus

cov

macierz kowariancji

cumsum

suma kumulacyjna

background image

25

MATLAB – wyrażenia (3)

deconv

wektory współczynników 

wielomianów

delete

usuń

det

wyznacznik

diag

diagonalna

dif

różniczka

dir

ścieżka dostępu

eig

wektor własny

erf

funkcja błędu

error

błąd

exp

funkcja wykładnicza

ezplot

wykres funkcji w przedziale

feval

wykres funkcji określonej łańcuchem

figure

okno wykresu

fopen, fclose

otwarcie i zamknięcie pliku

for.. end

pętla

format

format zmiennych

background image

26

MATLAB – wyrażenia (5)

fplot

wykres funkcji

gamma

funkcja gamma

gca

identyfikator okna współrzędnych

gcf

identyfikator okna

get

odczyt wartości okna

ginput

wartości współrzędnych

global

zmienna globalna

gradient

gradient

grid, grid of, grid 
on

siatka, usuwanie

gtext

wprowadza tekst na rysunek

help

pomoc

hidden of, hidden 

on

ukrywania

hist

histogram

hold, hold of, hold 

on

podtrzymanie rysunku

home

ustawienie kursora na ekranie

if ...elseif end

skok warunkowy

background image

27

MATLAB – wyrażenia (6)

input

wprowadzenie tekstu

int2str

zmiana stałej na nazwę

interpl

interpolacja 1

interp2

interpolacja 2

isempty

0 gdy macierz pusta

legend

legenda

length

długość wektora

load

wprowadzić zmienną

log

logarytm naturalny

lgoglog

skala dwulogarytmiczna

mat2str

konwersja macierzy do  łańcucha

max

maksymalna wartość

mean

średnia

median

mediana

mesh

siatka 3D

min

wartość minimalna

background image

28

MATLAB – wyrażenia (7)

nargin

wywoływanie funkcji z różną liczbą 

argumentów

norm

norma macierzy/wektora

num2str

konwersja macierzy na ciąg nazw

ode23, ode45

dwie metody Rungego Kutty

patch

wypełnianie wielokątów

path

ścieżka

pause

przerwa

permute

permutacja indeksów tablicy

plot, 

plot(x,y,'typ'),plot(x,y,xl,y

l), plot3

wykres

poly, polyeig

wielomiany

polyfit, polyval

dopasowywanie wielomianów

prod

wyznacznik macierzy

background image

29

MATLAB – wyrażenia (8)

input

wprowadzenie tekstu

int2str

zmiana stałej na nazwe

interpl

interpolacja 1

interp2

interpolacja 2

isempty

0 gdy macierz pusta

legend

legenda

length

długość wektora

load

wprowadzić zmienną

log

logarytm naturalny

lgoglog

skala dwulogarytmiczna

mat2str

konwersja macierzy do  łańcucha

max

maksymalna wartość

mean

średnia

median

mediana

mesh

siatka 3D

min

wartość minimalna

nargin

wywoływanie funkcji z różną liczbą 

argumentów

background image

30

MATLAB – wyrażenia (9)

normx

norma macierzy/wektora

num2str

konwersja macierzy na ciąg nazw

ode23, ode45

dwie metody Rungego Kutty

patch

wypełnianie wielokątów

path

ścieżka

pause

przerwa

permute

permutacja indeksów tablicy

plot, 

plot(x,y,'typ'),plot(x,y

,xl,yl), plot3

wykres

poly, polyeig

wielomiany

polyfit, polyval

dopasowywanie wielomianów

prod

wyznacznik macierzy

background image

31

MATLAB – wyrażenia (10)

rand

losowa generacja uniform

randn

losowa generacja normalna

rank

rząd macierzy

real

część rzeczywista

realmax, realmin

maks lub min części 

rzeczywistej

roots

pierwiastki wielomianu

round

zaokrąglenie

save

zapisz Mat-plik

semilogx, semilogy,

współrzędne logarytmiczne

sin

sinus

size

rozmiar macierzy/wektora

sparse

macierz rzadka

sqrt

pierwiastek

std

odchylenie kwadratowe

str2mat

konwersja nazwy do zmiennej

subplot(211)

jeden z 2 rysunków na wykresie

background image

32

MATLAB – wyrażenia (11)

sum

suma

surf

oznaczenie powierzchni

surface

obiekt powierzchnia

switch

przełączanie na case

text

opis tekstowy

title

tytuł rysunku

uicontrol, uimenu

przyciski rysunku

varargin, varargout

funkcja wielu argumentów 

wejściowych

view

ustawianie rysunku 3D

waterfall

rodzaj rysunku 3D

which

ścieżka do pliku

while .. end

pętla warunkowa

who

nazwy plików

whos

nazwy i parametry plików

xlabel, ylabel, zlabel

opisy osi

zeros

macierz zerowa

zoom

powiekszenie

background image

33

MATLAB – pliki skryptowe i funkcyjne 

M-files can be either scripts or functions.
M-pliki są skryptami lub funkcjami
 

Scripts are simply files containing a sequence of MATLAB statements.

Skrypty to pliki zawierające  sekwencje wyrażeń w języku MATLAB. 
Pracują w oparciu o zmienne globalne

Functions make use of their own local variables and accept input 
arguments.

Funkcje używają swoje lokalne zamienne i akceptują argumenty 
wejściowe. W przypadku gdy zmienna ma być globalne należy to 
zadeklarować przez:
global x

background image

34

MATLAB – pliki skryptowe przykłady 

sinc  : najprostsza postać funkcji sin(x)/x (zapis błędny)

sinc0: poprawna postać funkcji sin(x)/x i jej wykres

sinc1: postać funkcji sin(x)/x i jej wykres funkcją comet

sinc2: postać funkcji sin(x)/x i jej wykresy przy pomocy funkcji 
subplot

background image

35

MATLAB – pliki skryptowe i funkcyjne 

M-files can be either scripts or functions.
M-pliki są skryptami lub funkcjami
 

Scripts are simply files containing a sequence of MATLAB statements.

Skrypty to pliki zawierające  sekwencje wyrażeń w języku MATLAB. 
Pracują w oparciu o zmienne globalne

Functions make use of their own local variables and accept input 
arguments.

Funkcje używają swoje lokalne zamienne i akceptują argumenty 
wejściowe. W przypadku gdy zmienna ma być globalne należy to 
zadeklarować przez:
global x

background image

36

M_plik (plik funkcyjny: CIRCLEFN )

function [x,y] = circlefn(r)

% CIRCLEFN - skrypt rysujący okrąg o promieniu r (HELP)
% Plik napisany przez R. Pratap 9.14.94
% Ostatnia modyfikacja 9.01.98
% Składnia wywołania: [x,y] = circlefn(r) lub circlefn(r) 
% Wyniki: [x,y] współrzędne punktów x i y
%------------------------------------------------------------------------------------------

theta = linspace(0,2*pi,100);

                % tworzy wektor 

100 kątów theta
x = r*cos(theta);

                             % położenie punktu 

x
y = r*sin(theta);

                % położenie punktu 


plot(x,y);

                % rysowanie okręgu

axis('equal');

                             % deklarowanie równych 

osi
title(['okrąg o promieniu r = ',num2str(r)]);   % tytuł rysunku

background image

37

M_plik (plik HELP: CIRCLEFN )

  View code for circlefn                                   Default Topics   

  circlefn - skrypt rysujący okrąg o promieniu r
  Plik napisany przez R. Pratap 9.14.94
  Ostatnia modyfikacja 9.01.98
  Składnia wywołania: [x,y] = circlefn(r) lub circlefn(r) 
  Wyniki: [x,y] współrzędne punktów x i y
 
------------------------------------------------------------------------------------------------------
--

background image

38

MATLAB – M_plik (plik funkcyjny)

Wyjaśnienie pojęć:

function – 

słowo kluczowe

[mi,si,n,d) – 

argumenty wyjściowe

statystyka – 

nazwa funkcji

(x) – 

wektor danych wejściowych

Plik funkcyjny nazwa: statystyka

function [mi,si,n,d] = statystyka(x)
n = length(x);
d = max(x) - min(x);
mi = sum(x)/n;
si = sqrt(sum((x-mi).^2/n));

Składnia:

[mi,si,n,d] = statystyka(x)

background image

39

MATLAB – M_plik skryptowy i funkcyjny: 

funkcja_comet

Plik funkcyjny:

1. %wykres funkcji używającej sin(t)/t
2. %nazwa pliku: funkcja_comet
3. function funkcja_comet;
4. global t;
5. t=-1:0.011:19;
6. y=-sin(t)./t;
7. x=-cos(t);
8. figure
9. comet(x,y)

Plik skryptowy:

1. t=-1:0.011:19;
2. y=-sin(t)./t;
3. x=-cos(t);
4. figure
5. comet(x,y)


Document Outline