WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI
INSTYTUT AUTOMATYKI I INFORMATYKI
KIERUNEK AUTOMATYKA I ROBOTYKA
STUDIA STACJONARNE I STOPNIA
PRZEDMIOT : LABORATORIUM PODSTAW AUTOMATYKI
ĆW nr 1
TEMAT: Wstęp do MATLABA cz-1
NAZWISKO: DĄBEK IMIĘ: DOMINIKA
TERMIN WYKONANIA: 10-03-2011 TERMIN ODDANIA: : 17-03-2011
Prowadzący:
Dr inż. Grzegorz Bialic
MATLAB to pakiet przeznaczony do wykonywania obliczeń numerycznych oraz do graficznej prezentacji wyników. Posiada przyborniki (toolbox) z procedurami i funkcjami specyficznymi dla danej dziedziny nauki np. SIMULINK do symulacji systemów dynamicznych.
Praca w środowisku MATLAB polega na wydawaniu poleceń w wierszu poleceń okna komend MATLABA, które są wykonywane przez interpreter.
>> a=5 - wyświetlenie zmiennej w oknie komend
a =
5
>> a=5; - wprowadzenie zmiennej bez wyświetlania
>> a - sprawdzenie wartości zmiennej I wyświetlenie jej w oknie
a =
5
>> who – wyświetlenie listy zmiennych
Your variables are:
a
>> whos – wyświeltlenie listy zmiennych wraz z ich parametrami
Name Size Bytes Class Attributes
a 1x1 8 double
>> clear a – wykasowanie zmiennej a
>> clear all – wykasowanie wszystkich zmiennych
>> A=[3,1;6,4]; - wprowadzenie elementów macierzy
>> B=[1.5,2,0;2,5.8,1;7,5,4.3];
>> x=[1:9] – określa parametry macierzy
x =
1 2 3 4 5 6 7 8 9
>> x1=[2:2:20]
x1 =
2 4 6 8 10 12 14 16 18 20
>> y= eye(3) – wprowadzenie macierzy jednostkowej 3x3
y =
1 0 0
0 1 0
0 0 1
>> y1=eye(3,2) – wprowadzenie macierzy jednostkowej 3x2
y1 =
1 0
0 1
0 0
>> y2=ones(2) – wprowadzenie macierzy jedynkowej 2x2
y2 =
1 1
1 1
>> y3=ones(2,3) – wprowadzenie macierzy jedynkowej 2x3
y3 =
1 1 1
1 1 1
>> y4=zeros(4) – wprowadzenie macierzy zerowej 4x4
y4 =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>> y5=zeros(1,4) – wprowadzenie macierzy zerowej 1x4
y5 =
0 0 0 0
>> y6=rand(1,5) – wyświetlenie 5 losowych elementów z przedziału <1,5>
y6 =
0.8147 0.9058 0.1270 0.9134 0.6324
>> y7=randn(1,6)
y7 =
-1.3077 -0.4336 0.3426 3.5784 2.7694 -1.3499
>> x=(2:5) – wprowadza elementy wektora od 2 do 5
x =
2 3 4 5
>> B(2,:) – wyświetlenie wszystkich elementów 2 wiersza
ans =
2.0000 5.8000 1.0000
>> B(2,2:3) – wyświetlenie elementów 2 i 3 wiersza 2
ans =
5.8000 1.0000
>> B(:,3) – wyświetlenie 3 kolumny macierzy B
ans =
0
1.0000
4.3000
>> B(:,2:3) – wyświetlenie elementów kolumny 2 i 3
ans =
2.0000 0
5.8000 1.0000
5.0000 4.3000
>> B(1:2,2:3) -wyświetlenie elementów kolumn od 2 do 3 wierszy od 1 do 2
ans =
2.0000 0
5.8000 1.0000
>> b=[1,2,3];
>> B(b,2:3)
ans =
2.0000 0
5.8000 1.0000
5.0000 4.3000
>> B(:,:) – wyświetlenie całej macierzy B
ans =
1.5000 2.0000 0
2.0000 5.8000 1.0000
7.0000 5.0000 4.3000
>> B(:) – wyświetlenie całej macierzy w postaci wektora kolumnowego
ans =
1.5000
2.0000
7.0000
2.0000
5.8000
5.0000
0
1.0000
4.3000
>> size(A) - wyświetla rozmiar macierzy A
ans =
2 2
>> [n,m]=size(A) – przypisanie zmiennej n i m liczby wierszy I kolumn macierzy A
n =
2
m =
2
>> n=size(A,1)
n =
2
>> m=size(A,2)
m =
2
>> length(x) – określa długość wektora x
ans =
4
>> B' – wyświetla macierz B transponowaną
ans =
1.5000 2.0000 7.0000
2.0000 5.8000 5.0000
0 1.0000 4.3000
>> C=[A,[2;5];[7 8 9]] – tworzy macierz C za pomocą macierzy A i innych wprowadzonych elementów
C =
3 1 2
6 4 5
7 8 9
>> D=[A,[2;5]]
D =
3 1 2
6 4 5
>> C+B – wykonuje dodawanie macierzy i wyświetla wynik
ans =
4.5000 3.0000 2.0000
8.0000 9.8000 6.0000
14.0000 13.0000 13.3000
>> C*B – wykonuje mnożenie macierzy i wyświetla wynik
ans =
20.5000 21.8000 9.6000
52.0000 60.2000 25.5000
89.5000 105.4000 46.7000
>> C.*B – przemnaża element przez element
ans =
4.5000 2.0000 0
12.0000 23.2000 5.0000
49.0000 40.0000 38.7000
>> B*D – ilość wierszy nie zgadza się z ilością kolumn, dlatego mnożenie nie jest możliwe
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> D*B
ans =
20.5000 21.8000 9.6000
52.0000 60.2000 25.5000
>> C^2 – podnosi macierz C do kwadratu
ans =
29 23 29
77 62 77
132 111 135
>> C.^2 – podnoszenie konkretnych elementów macierzy do kwadratu
ans =
9 1 4
36 16 25
49 64 81
>> B/C - dzielenie macierzy
ans =
-4.8889 4.0556 -1.1667
-10.9111 8.0444 -1.9333
-4.1111 4.5444 -1.1333
>> B./C
ans =
0.5000 2.0000 0
0.3333 1.4500 0.2000
1.0000 0.6250 0.4778
>> pwd – wyświetla katalog roboczy
ans =
C:\Users\Domka\Documents\MATLAB
>> cd,
C:\Users\Domka\Documents\MATLAB
>> cd ..
>> cd matlab
>> save myfile A - zapis zmiennej w pliku *.mat
>> save 'my file' B - zapis zmiennej w pliku *.mat gdy nazwa zawiera spacje
>> clear A B – kasowanie macierzy A i B
>> A
??? Undefined function or variable 'A'.
>> B
??? Undefined function or variable 'B'.
>> load myfile A – przywołanie zmiennej A
>> load 'my file' B
>> whos – wyświetla listę zmiennych I ich wymiarów
Name Size Bytes Class Attributes
A 2x2 32 double
B 3x3 72 double
C 3x3 72 double
D 2x3 48 double
ans 1x31 62 char
b 1x3 24 double
m 1x1 8 double
n 1x1 8 double
x 1x4 32 double
x1 1x10 80 double
y 3x3 72 double
y1 3x2 48 double
y2 2x2 32 double
y3 2x3 48 double
y4 4x4 128 double
y5 1x4 32 double
y6 1x5 40 double
y7 1x6 48 double
>> t=0:0.1:4*pi;
>> y=sin(t);
>> y1=sin(4*t);
>> plot(t,y)
>> hold on
>> plot(t,y1,'r')
>> close all – zamknięcie wszystkich otwartych okien
>> fplot('sin(x)',[0 4*pi]) – rysowanie wykresu funkcji
>> y2=sin(2*t);
>> subplot(221)
>> plot(t,y)
>> subplot(222)
>> plot(t,y1,'r-.')
>> subplot(223)
>> plot(t,y2,'r--')
myfile.m - tworzenie skryptu
for i=1:4
t=0:0.1:4*pi;
if i==1
y=funkcja(t,1);
subplot(2,2,i)
plot(t,y)
elseif i==2
y=funkcja(t,2);
subplot(2,2,i)
plot(t,y,’r’)
elseif i==3
y=funkcja(t,4);
subplot(2,2,i)
plot(t,y,’g’)
else
y=funkcja(t,8);
subplot(2,2,i)
plot(t,y,’k’)
end
end
funkcja.m
function [y]=funkcja(t,n)
y=sin(n*t)
end