MATLAB program

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ł.gr10.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

y
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


Wyszukiwarka

Podobne podstrony:
Matlab Programming (ang)
(ebook PDF) Matlab Programming 2VKYTTKUTU2WAIFOGBB72LOSVAOWLNVFNX46AYI
Matlab Programming (ang)
Matlab Programming f001
Matlab środowisko programu
Automatyka- Wprowadzenie do programu Matlab
Plik Word a w nim przydatne wiadomości do nauki obsługi programu Matlab, Politechnika Rzeszowska
Matlab podstawy programowania
Examples of Programming in Matlab (2001) WW
1. Matlab. Zapoznanie z programem, Elektrotechnika - notatki, sprawozdania, Metody numeryczne w tech
MatLab- ćw.1, ElektronikaITelekomunikacjaWAT, Semestr 1, Metodyka i technika programowania1, MTP1

więcej podobnych podstron