matlab by kasia

background image

Podstawy podstaw, czyli MATLAB w pigułce- wersja dla leniwych zapracowanych

1.WYKRESY

plot(X) – rysuje wektor X w funkcji indeksu, w przypadku macierzy traktuje je jak zestaw wektorów
plot(X,Y) – wykreśla wektor Y w funkcji wektora X, Gdy X lub Y jest macierzą to wektor jest rysowany odpowiednio w funkcji
kolumn lub rzędów.
plot(X,Y,S) – wykreśla jak funkcja plot(X,Y) ale dodatkowo pozwala wybierać kolor, rodzaj linii i symbole punktów.
Kolor

Symbole punktów

Rodzaj linii

y – yellow

. – point

- – ciągła

m – magenta

o – circle

: – kropkowana

c – cyan

x – x-mark

-. – kropka-kreska

r – red

+ – plus

-- – kreskowana

g – green

* – star

b – blue

s – kwadraty

w – white

d – romb

k – black

v – trójkąt w dół
^ – trójkąt w gór

t

< – trójkąt w lewo
> – trójkąt w prawo
p – pięciokąt
h – sześciokąt

Przykład:
>> plot(1:10,y) % wykreśla wektor od 1 do 10 w funkcji wektora y
>> plot(1:10,y, 'bx') – j.w. ale dodatkowo wykresla go w kolorze niebieskim zaznaczając punkty krzyżykami.
>> plot(1:10,x, 'bx ', 1:10,y, 'r*') – wykre

>

la dwa wykresy na jednym

fplot(F,P) – funkcja wykreśla funkcję F daną w postaci łańcucha w przedziale P.
>> fplot('2*sin(x) ',[0 2*pi])

% funkcja 2*sin(x) w przedziale od 0 do 2K

ezxplot(F,P) – funkcja wykreś

la funkcję F w przedziale P.

>> ezplot(x, 2*y, [0,2*pi])

% wykres funkcji parametrycznej typu x=x(t), y=y(2t), t

%

[0,2K]

Rysowanie wielu wykresów na wspólnym wykresie graficznym – funkcja hold:
hold on -wstrzymuje czyszczenie okna graficznego
hold off - przywraca tryb domyślny (każdorazowe czyszczenie okna)
ishold -testuje tryb rysowania wykresów

figure - otwiera nowe okno graficzne
>> figure(n) % uaktywnia okno graficzne o danym parametrze,
>> close % zamyka okno aktywne lub okno z zadanym parametrem.
>> cla % czyś

%

ci bieżący wykres

>> clf % czyś

%

ci aktywne okno graficzne

subplot
Funkcja subplot służy do podziału okna graficznego na mniejsze fragmenty. Podziału można dokonać albo w układzie macierzowym,
albo podając dokładne wymiary wykresu.
subplot(m,n,p) - dzieli okno graficzne na M kolumn i N wierszy (M,N<9). P oznacza numer aktualnego wykresu. Można też
wywołać jako subplot(mnp)

line(x,y) rysuje linie łamaną łączącą wierzchołki punktów wyznaczonych przez elementy wektorów x i y
fill(x,y,’c’) rysuje wielokąt o wierzchołkach w punktach wyznaczonych przez wektorów x i y, wypełniony kolorem 'c'.

Skalowanie wykresów – funkcje

axis

i log

-i

axis('auto') domy

d

lny tryb skalowania

axis([xmin, xmax, ymin, ymax]) wykreś

w

la wykres w zadanych przedziałach osi X i Y

axis('off') ukrywa osie
axis('on') przywraca wyświetlanie osi
axis('equal') osie mają proporcjonalne jednostki na obu osiach X i Y
loglog(x) skala logarytmiczna na obu osiach
semilogx(x) skala logarytmiczna na osi X
semilogy(x) skala logarytmiczna na osi Y

Opisywanie wykresów
plot(x,y, 'r ') - wykres funkcji
title('To jest wykres') - Tytuł wykresu
grid off - wyłączenie wyświetlania siatki

background image

xlabel('o X') - podpis osi X
ylabel('o Y') - podpis osi Y
text(2,4, 'tu jest punkt') - tekst wstawiony w punkcie (2,4)

Funkcja meshgrid – tworzy macierze opisujące położenie węzłów siatki prostokątnej. Służy do przygotowania danych niezbędnych
do stworzenia większości wykresów 3D.
Przykład:
>> [X,Y]=meshgrid(x,y); % tworzy macierze X, Y na podstawie wektorów z węzł

z

ami siatki x, y

>> [X,Y]=meshgrid(x); % j.w. ale y=x

Funkcja mesh
mesh(X,Y,Z)
– funkcja mesh rysuje siatkę opisaną przez macierze X,Y,Z. Gdzie macierze X, Y podają współrzę

r

dne punktów siatki a

dane w macierzy Z okre

d

ślają wartość funkcji w punkcie (x,y).

Mesh(X,Y,Z,c) – c – indeksy kolorów w aktualnej mapie kolorów.

2.MACIERZE

Do generowania pewnych macierzy można stosować funkcje:
zeros(w,k):-macierz wypełniona zerami np.: A = zeros(2,3)
ans =
0 0 0
0 0 0
ones(w,k):-macierz wypełniona jedynkami np.: A = ones(2,4)
ans =
1 1 1 1
1 1 1 1
rand(w,k):-macierz liczb pseudolosowych o rozkładzie równomiernym np.: A = rand(2,5)
ans =
0.9501 0.6068 0.8913 0.4565 0.8214
0.2311 0.4860 0.7621 0.0185 0.4447
eye(N): macierz jednostkowa (kwadratowa N x N z jedynkami na przekątnej głównej i zerami)

-Definicja macierzy przez wyliczenie elementów:

-

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

-Definicja macierzy przez wygenerowanie elementów:
A=[min:krok:max]
Polecenie generuje wektor poczynając od elementu o wartości min, kończąc na elemencie max z krokiem krok;gdy krok nie jest
zdefiniowany przyjmuje wartość 1.

-Odwołanie do elementów:
A(2,3) odwołanie do elementu 3 w wierszu 2

-Odwołanie do podmacierzy, przykłady:
B=A(:,[1:3 5])- utworzenie macierzy B poprzez pobranie z macierzy A kolumn 1-3 oraz 5
B=A([1 3], 1:2:5)- utworzenie macierzy B z elementów macierzy A leżących na przecięciu 1 i 3 z kolumnami 1, 2 i 5

-Usuwanie wektora z macierzy:

-

» A=[1 2 3 4; 4 5 6 7]
A =
1 2 3 4
4 5 6 7
» A(2,:)=[ ] - usuwa drugi wiersz macierzy A
A =
1 2 3 4
» A(:,1:2)=[ ] - usuwa dwie pierwsze kolumny macierzy A
A =
3 4
6 7
-Jeżeli w macierzy Y w miejsce (3,2) chcemy wstawić np. 5 , to piszemy:
Y(3,2)=5;

-Wymiar i wyświetlanie macierzy
• [n,m]=size(A) zwraca liczbę wierszy

m i kolumn n macierzy A;

n=length(X) - zwraca wymiar wektora X
disp(A) lub A - pokazuje macierz A na ekranie;

background image

Operator

Operacja macierzowa

Operacja tablicowa

Dodawanie

+

+

Odejmowanie

-

-

Mnożenie

*

.*

Dzielenie lewostronne

\

.\

Dzielenie prawostronne

/

./

Potęgowanie

^

.^

inv(A) lub A^(-1) zwraca macierz odwrotną do A
A’ - transponuje macierz A

det(A) - obliczanie wyznacznika macierzy A
eig(A) wartości własne macierzy A
poly(A) obliczanie współczynników wielomianu charakterystycznego macierzy A
rank(A) obliczanie rzędu macierzy A
diag(A) wyznaczenie elementów leżących na głównej przekątnej macierzy A

3.IMPULSY

Tu wyszło moje lenistwo, po prostu wklejam kod z projektu robiący wszystko co trzeba.

%sinus

fp=20000;
dt=1/fp;

%odstęp pomiędzy próbkami

t=0:dt:0.5;

%czas

R=1000; C=2e-6; tau=R*C;

%elementy obwodu RC

kx=1/tau*exp(-t/tau);

%odpowiedz impulsowa

fs=0.05/tau:0.1/tau:0.15/tau

%wybrane częstotliwości sygnału

plot(t,kx)

%wykres odpowiedzi impulsowej

yk(length(t))=0;

%zarezerwowany obszar na sygnał

ti=0:dt:max(t);

%przedział czasowy dla sygnału niezerowego

Ug=1

%napięcie pobudzenia


% pętla konieczna z uwagi na fakt, iż analiza dokonywana jest równocześnie dla fs i f.

for

i=1:length(fs)

ys(i,:)=Ug*sin(2*pi*fs(i)*t);
yk(i,1:length(ti))=ys(i,1:length(ti));
s1(i,:)=dt*conv(kx,yk(i,:));

end

plot(t(1:5000),s1(i,1:5000),

'r'

,t(1:5000),yk(i,1:5000),

'b'

)

xlabel(

't[s]'

); ylabel(

'U[V]'

);

grid
figure
mesh(s1(:,1:2000))

%obraz zmian sygnału w funkcji częstotliwości

end

%odpowiedź impulsowa dla sygnału prostokątnego;

fp=20000;
dt=1/fp;

%odstęp pomiędzy próbkami

t=0:dt:0.5;

%czas

R=1000; C=2e-6; tau=R*C;

%elementy obwodu RC

kx=1/tau*exp(-t/tau);

%odpowiedź impulsowa

plot(t,kx)

%wykres odpowiedzi impulsowej

yk(length(t))=0;

%zarezerwowany obszar na sygnał

ti=0:dt:max(t)/5;

%przedział czasowy dla sygnału niezerowego

Ug=1

%napięcie pobudzenia

yk(1:length(ti))=Ug;
s1=dt*conv(kx,yk);
plot(t(1:5000),s1(1:5000),

'r'

,t(1:5000),yk(1:5000),

'b'

)

xlabel(

't[s]'

); ylabel(

'U[V]'

);

grid

end

%odpowiedź układu RC dla pobudzenia sinus kluczowany;

fp=20000;

background image

dt=1/fp;

%odstęp pomiędzy próbkami

t=0:dt:0.5;

%czas

R=1000; C=2e-6; tau=R*C;

%elementy obwodu RC

kx=1/tau*exp(-t/tau);

%odpowiedź impulsowa

fs=0.05/tau:0.1/tau:0.15/tau

%wybrane częstotliwości sygnału

plot(t,kx)

%wykres odpowiedzi impulsowej

yk(length(t))=0;

%zarezerwowany obszar na sygnał

ti=0:dt:max(t)/5;

%przedział czasowy dla sygnału niezerowego

Ug=1

%napięcie pobudzenia



% pętla konieczna z uwagi na fakt, iż analiza dokonywana jest równocześnie dla fs i f.

for

i=1:length(fs)

ys(i,:)=Ug*sin(2*pi*fs(i)*t);
yk(i,1:length(ti))=ys(i,1:length(ti));
s1(i,:)=dt*conv(kx,yk(i,:));

end

plot(t(1:5000),s1(i,1:5000),

'r'

,t(1:5000),yk(i,1:5000),

'b'

)

xlabel(

't[s]'

); ylabel(

'U[V]'

);

grid
figure
mesh(s1(:,1:2000))

%obraz zmian sygnału w funkcji częstotliwości

end

Żeby wszystko było w jednym miejscu- Czarkowe echo:

[n0,fp,bits]=wavread('C:\matlab\ed1.wav'); %wczytanie pliku wav do macierzy n0
g=[1,zeros(1,5000),1]; % utworzenie macierzy z zerami

n1=n0(:,1); %wycięcie pierwszej kolumny z pliku wav
n2=n0(:,2); % wycięcie drugiej kolumny z pliku wav

x1=conv(n1,g);%właściwe tworzenie echa (czyli przesunięcie macierzy n1 o 5000 elementów i późniejsze sklejenie z pierwotnym n1
tak jak w dodawaniu pisemnym) dla jednego kanału
x2=conv(n2,g);%jw

x3=[x1 x2]; % robimy stereło
sound(x3,44100) % I słuchamy jak nam wyszło


Wyszukiwarka

Podobne podstrony:
matlab by kasia
Sałatka pieczarkowa by Kasia
Sałatka kalafiorowa inaczej by Kasia
Urządzenia 3 sprawozdanie by Kasia
ekonomika by Kasia N., GP3
Nieruchomości by Kasia N., GP3
MATLAB streszczenie by Kula ( Nieznany
MATLAB streszczenie by Kula ( Nieznany
Matlab cw1 2 zaoczni
cz 1, Matlab moj
Image Processing with Matlab 33
prezentacja z chirurgii cw 4 kasia comber
MATLAB graf(1)
kod matlab
Cw08 Matlab2
4 pomiary by kbarzdo
dymano teoria by demon

więcej podobnych podstron