Wprowadzenie do
MATLABA. Generowanie
wykresów
Nazwy i definicje
zmiennych
-
MATLAB rozróżnia duże i małe litery w nazwach
zmiennych oraz poleceń
-
polecenia standardowe należy pisać małymi literami
-
do nazywania własnych programów i zmiennych
można używać małych i dużych liter
-
Definiowanie typu i wielkości zmiennej odbywa się
automatycznie
Wprowadzanie danych -
skalar
Wprowadzanie danych -
wektor
Wprowadzanie danych -
macierz
Wprowadzanie danych -
macierz
Wprowadzanie danych -
c.d.
Wprowadzanie danych -
c.d.(do sprawozdania)
1+3
1e4
1e4+2e4
log(2)
exp(1)
log(exp(1))
log10(10)
pi
sin(pi/2)
2^3
sin(0.4)^2+cos(0.4)^2
z1=1+2i
real(z1)
imag(z1)
sqrt(-1)
1/0
Wymiary pojedynczej
macierzy
Wprowadzanie danych -
c.d.
Wprowadzanie danych -
c.d.
Generowanie wektorów
j:d:k
[j,j+d,j+2d,….,k]
Wykonać polecenia:
W1=1:6
W2=1:0.1:2
W11=1:6.5
W22=10:10:55
A=[1:5;6:10;11:15;16:20;21:25]
b=[0:0.1:0.5]
B=[b;b+1;b+2;b+3;b+4;b+5;b+6]
Operacje na macierzach 1
Transpozycja macierzy
Operacje na macierzach 2
Transpozycja macierzy (wektora)
Operacje na macierzach 3
Transpozycja macierzy zespolonej
Operacje na macierzach 5
Dzielenie macierzy
X = A\B dzielenie lewostronne
X = B/A dzielenie prawostronne
Potęgowanie macierzy (^)
Operacje na macierzach 5
Dane są macierze
A =[
1 0 2 −1
4 1 3 0
0 −1 3 8
1 1 2 2]
B=
[2 −4 1 3
4 0 4 5
5 0 0 3
9 4 1 8]
Obliczyć
A + 1
A * B
3A + 4B
A*2
A
^
3 + A^2 − 2A
Wybór wierszy, kolumn,
elementów tablicy
A(i,j)
ELEMENT Z I-TEGO WIERSZA I J-TEJ
KOLUMNY
A(:,J)
j-ta kolumna macierzy A
A(i,:)
i-ty wiersz macierzy A
A(k)
k-ty element macierzy A
A(:)
wszystkie elementy macierzy A w jednej
kolumnie
Indeksowanie macierzy 2
Indeksowanie macierzy
W celu usunięcia kolumn lub i wierszy -
przyporządkowanie macierzy pustej
Indeksowanie macierzy - użycie
„:”
Wybór wierszy, kolumn,
elementów tablicy (do
sprawozdania)
Wykonać polecenia:
A=[1 2 3;4 5 6;7 8 9]
A(1,1)
A(:,3)
A(:,end)
A(3,)
A(end,:)
A(1)
A(1:10)
A(:)
Zarządzanie przestrzenią
roboczą 2
Zapisanie wybranych zmiennych do pliku
>> save abc
Zapisanie zmiennych w pliku tekstowym
>> save abc.dat
Zmiana katalogu
>> cd path
Wyświetlenie plików związanych z MATLAB
>> what path
Tworzenie innych
użytecznych macierzy
zeros - macierz zer
ones - macierz jedynek
eye - macierz jednostkowa
rand - macierz losowa o rozkładzie równomiernym
randn - macierz losowa o rozkładzie normalnym
meshgrid - tablice X i Y dla trójwymiarowych
wykresów
Operacje na tablicowe na
macierzach
Dostępne są operacje .* ./ .\ .^, które wykonuje się
element po elemencie macierzy
Macierze muszą być tych samych wymiarów
W przypadku mnożenia liczby przez macierz przed
kropką powinna wystąpić spacja, np.:
z = 2 .^[x y]
Dodawanie i odejmowanie tablicowe są zdefiniowane
tak samo jak dla macierzy.
Mnożenie tablicowe
Dzielnie tablicowe ./
(prawe)
Ilorazy elementów z tablic c i a o tych samych
indeksach
Dzielenie tablicowe .\
(lewe)
Mnożenie i dzielenie przez
skalar
Potęgowanie tablicowe .^
Potęgowanie tablicowe .^
(skalary)
Macierz odwrotna:
>> A^(-1) lub >> inv(A)
Operacje relacyjne i
logiczne
<
mniejszy
<
mniejszy bądź równy
>
większy
>=
większy bądź równy
==
równy
~=
różny
&
logiczne and
|
logiczne or
~
logiczne not
abs - wartość
bezwzględna
angle - faza
conj - sprzężenie
imag - część urojona
real - część rzeczywista
fix - zaokrąglenie w
kierunku 0
floor zaokrąglenie w
kierunku -
ceil - zaokrąglenie w
kierunku +
round - zaokrąglenie do
najbliższej całkowitej
rem - reszta z dzielenia
sign - znak
exp - funkcja wykładnicza
log - logarytm naturalny
log10 - logarytm dziesiętny
sqrt - pierwiastek
kwadratowy
Funkcje elementarne
Funkcje trygonometryczne
sin - sinus
cos - cosinus
tan - tangens
asin - arcus sinus
acos - arcus cosinus
atan - arcus tangens
sinh - sinus
hiperboliczny
cosh - cosinus
hiperboliczny
tanh - tangens
hiperboliczny
asinush - arcus sinus
hiperboliczny
acosh - arcus cosinus
hiperboliczny
atanh - arcus tangens
hiperboliczny
Operacje podstawowe i
interpolacja
max - element maksymalny
min - element minimalny
mean - średnia
median - mediana
std - odchylenie standardowe
sort - sortowanie w porządku rosnącym
sum - suma
prod - iloczyn
interp1 - 1-wymiarowa interpolacja
interp2 - 2-wymiarowa interpolacja
interpft - interpolacja z wykorzystaniem FFT
spline - interpolacja przy pomocy splajnów
plot(y)
% domyślnie
x=[1,2,3,…]
plot(x,y)
% wykres
pojedynczy, gdy y jest wektorem
plot(x,y,x1,y1,…) % kilka wykresów
Wykresy
Wykresy (do sprawozdania)
przykład:
y=[-3 –2 2 2 0 7 9 2];
plot(y)
x=-pi:0.1:pi;
z=sin(x);
plot(x,z)
Przykład
(do sprawozdania)
t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
Funkcja stem
Funkcja stem wykonuje dwuwymiarowe wykresy
dyskretne z liniową skalą na obu osiach.
Wywołanie funkcji powoduje otwarcie okienka
graficznego, w którym pojawia się wykres. Składnia
funkcji może przyjmować postać:
stem(y)
% domyślnie x=[1,2,3,…]
stem(x,y)
Okna Graficzne (ang. Figure Windows)
Funkcja plot, automatycznie otwiera nowe okno, jeśli na ekranie
nie ma otwartych okien graficznych. Jeśli takie okno już istnieje,
zostanie domyślnie użyte. Aby otworzyć nowe okno graficzne i
uczynić je bieżącym, wpisz
figure
Aby uczynić istniejące okno bieżącym, wpisz
figure(n)
gdzie n jest numerem okna, który możesz znaleźć na pasku
tytułowym. Rezultaty używanych później funkcji graficznych będą
wyświetlane w tym oknie.
Przykład
x=-2*pi:0.1:2*pi; %wektor z argumentami funkcji
» y=sin(x);
% wektor z wartością funkcji
» figure
%otwórz nowe okno do rysowania
wykresu
» stem (x,y);
%narysuj wykres, można
użyć
polecenia plot
» hold on;
%zatrzymaj rysowanie
» grid;
%dodaj siatkę do wykresu
» title ('Sinus'); %dodaj tytuł
» hold off;
%kontunuuj rysowanie
Przykład
x=-2*pi:0.1:2*pi;
y=sin(x);
figure
subplot (2,1,1);
stem (x,y);
subplot (2,1,2);
plot (x,y);
Przykład
clear all;
%wyczysc wszystkie
zmienne
close all;
%zamknij wszystkie okna
x=-2*pi:0.1:2*pi; %oś x, argumentów
y=3*sin(x);
%generuj wartosci funkcji
figure;
%nowe okno
plot (x,y);
%rysuj
hold on;
grid;
%siatka
title ('sin(x)');
%tytul
hold off;
>>
x=0:pi/100:4*pi; % wektor zmiennej x
>>y=sin(x);
% wektor wartości funkcji
>>plot(y)
% oś x wyskalowana domyślnie
kolejnymi liczbami
naturalnymi
>>plot(x,y)
% na osi x kolejne wartości
wektora x
>>plot(x,sin(x),x,cos(x)) % dwa wykresy
>>plot(x,[sin(x);cos(x)]) % dwa wykresy
Przykład
Możliwy jest wybór koloru, stylu linii oraz znaczników takich
jak znaki plus lub okręgi
plot(x,y,'kolor_styl_znacznik')
Znaki określające kolor to 'c' , 'm' , 'y' , 'r' , 'g' , 'b' , 'w' , oraz
'k' . Odpowiedzialne są one za kolory: cyjan, magneta, żółty
(ang. yellow), czerwony (ang. red), zielony (ang. green),
niebieski (ang. blue), biały (ang. white) oraz czarny (ang.
black).
Znaki określające styl linii to: ‘-‘ dla linii ciągłej, ‘--’ dla linii
kreskowanej, ‘:’ dla linii kropkowanej, ‘-.’ dla linii typu kreska-
kropka oraz ‘brak’ – bez linii.
Najczęściej stosowane typy znaczników to: ‘+’ , ‘o’ , ‘*’ oraz
‘x’ .
Przykład
plot(x,y,'y:+')
wykreśli żółtą linię kropkowaną, ze znacznikami w postaci
symboli plus w miejscu każdego przecięcia się danych.
Funkcje mesh oraz surf
Funkcje mesh i surf wyświetlają powierzchnie w
trzech wymiarach. Mesh wyświetla powierzchnie w
postaci siatek, w których pokryte kolorem są tylko
linie, natomiast surf pokazuje w kolorze zarówno
linie jak i poszczególne ścianki powierzchni.
Komenda subplot
Komenda subplot pozwala na wyświetlanie wielu wykresów w
tym samym oknie lub na drukowanie ich na jednej kartce
papieru.
subplot(m,n,p)
spowoduje przekształcenie okna graficznego w macierz o
wymiarach m na n, składającą się z małych wykresów. Jako
bieżący zostanie ustawiony wykres o numerze p. Wykresy są
ponumerowane rzędami. Aby wykreślić dane w czterech różnych
regionach okna graficznego, wpisz
t = 0:pi/10:2*pi;
subplot(2,2,1)
subplot(2,2,2);
subplot(2,2,3);
subplot(2,2,4);
Funkcje xlabel, ylabel oraz zlabel nadają etykiety osiom x, y oraz z,
funkcja title dodaje tytuł wykresu w górnej części okna, natomiast funkcja
text umieszcza dowolny tekst w dowolnym miejscu okna graficznego.
Podzbiór notacji Tex zawiera litery greckie, symbole matematyczne oraz
alternatywne czcionki.
(do sprawozdania)
t = -pi:pi/100:pi;
y = sin(t);
plot(t,y)
axis([0 pi -1 1])
ylabel('sin(t)')
title('Graph of the sine function')
t = [0:0.01:10];
y = 0.1*exp(-2*t).*cos(3*t+53*pi/180)–0.06*exp(-t)
+3.3*t.*exp(-t);
plot( t, y, ‘b-')
title('Rozwiązanie w dziedzinie czasu')
xlabel('t [s]')
ylabel('g(t)')
grid on
>> axis([1,10,0,26])
(do sprawozdania)