MatLab - konspekt

Download Report

Transcript MatLab - konspekt

RYS HISTORYCZNY
W latach 70tych na zlecenie National Science
Fundation powstały pierwsze biblioteki fortranowskie
do obliczeń numerycznych.
Jeden z autorow tego oprogramowania Cleve Moler
prowadził zajęcia z algebry liniowej na Uniwersytecie
Nowy Meksyk. Napisał on uniwersalny program na
korzystanie z bibliotek bez potrzeby programowania w
FORTRANIE
Czytanie i zapisywanie
• save <nazwa pliku> x,
• save <nazwa pliku> x -ascii
• load<nazwa pliku>
Operacje na macierzach
• Wprowadzanie danych: formy zapisu 1:.2:20; 1:20; -2.2:1.3:-12.5
• [1 3 12 23 2 3]; [1 3; 12 23; 2 3];
• Polecenie input np. x=input(‘podaj x’); y=input(‘pod’,’s’);
• Rola znakow: ; , : spacja, enter
• Tworzenie macierzy z macierzy:
• x=[1 3; 12 23; 2 3];
• y=[x x-2 2*x; x+2 x/2 x.^0.5];
elementy macierzy, y(3,5), zamiana y(3,5)=-2;
y(3, 3:6)=1; y(3:6,3)=1; z=y(2,2:4); zz(3,3,:)=y(2,2:4);
zz=zz’;
Standardowe funkcje i polecenia
sin cos tan cot, asin atan
• Inne: log; log10; sqrt; exp; mean; diff; fft;
spectrum
• Logiczne a=x==2; a=x>=2, a=x<=2 (skrypt
str.31)
• Trygonometryczne
FUNKCJE
•
•
•
•
function y=rys(x);
y=x.^2-5;
plot(x,y)
grid
•
•
•
•
x=-10:10; wprowadzamy - yy=‘x.^2-3’;
y=inline(‘x.^2-3’); z=inline(yy)
y(x); z(x)
fzero(yy,-2)
polecenia
• Z=find(x==3)%znajduje indeks x rownego 3 - Cegiełła str49
• size(x) % wypisuje ilość wierszy I kolumn - help MATLAB
• find(x) %znajduje indeksy dla ktorych x rózne od zera, można
napisać:
• find(x==0) % to polecenie znajduje dokładnie miejsca zerowe
• A(:,4)=[] %usuwa z macierzy A 4-ta kolumne – Cegiełła str.36
tic ... toc , eval, eps, clear, help
Grafika
•
•
•
•
•
•
•
•
Polecenia: plot(x,y,’k*y’); grid;
xlabel(‘string’), ylabel
text(x,y, ‘string’)
axis([xmin xmax ymin ymax])
title(‘string’)
Polecenia: stem, bar, stairs,polar,
Loglog, semilogx, axis square,
subplot
Funkcje I grafika wielu zmiennych
•
•
•
•
•
•
•
Mesh; meshgrid; surface, surf, contour
x=1:10;
y=-2:.1:2;
[xx,yy]=meshgrid(x,y)
z=x.^2+y.^2;
Bez pętli
z=xx.^2+yy.^2;
Liczby zespolone
• 2*j; 2*I; sqrt(-4); abs real imag angle
• polar
Rachunek symboliczny
• Warunek działania symbolicznego - musi
być: Toolboxes Symbolic Math (DEMO)
• syms a b c x
• x = solve(a*x^2 + b*x + c);
• x=solve('a*x^2+b*x+c=0')
• odpowiedź:
• x1=[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
• x2=[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
Inne formy
1. Rachunek symboliczny polecenie syms x y z; u=3*x^2-2x+3;
solve(u)
2. y=inline('3*x.^2-2*x+3');
deklarujemy x=-10:10;
y(x) ma postać postać numeryczną
plot(y(x))
3. ezplot('sin'); ezplot('x^3-2*x^2+3*x-5');
ezplot('x^3-2*x^2+3*x-5', [-20 30])
POLECENIE eval
X=-3:3;
y=input('y= ')
wprowadzamy
Y='x.^2-3'
Wyliczamy postać numeryczną y
z=eval(y)
Y jest dalej postacią tekstową i można ją
użyc np. jako title(y)
Polecenie HOLD
X=-3:3;
y=x.^2-3;
plot(x,y)
Hold on, hold off
plot(y)
Simulink
z generatorami przełącznikiem i dwoma
oscyloskopami:
generatory – Sources,
Oscyloskopy : Sinks
Przełącznik – Signal routing
Rózniczkowanie: Continous
Pliki dzwiękowe
• Wavread, wavwrite,
[Y,FS,NBITS,OPTS]=WAVREAD(...)
• x=wavread(‘proba’);
• x1=x(3000:length(x(:,1)),:);
• X0=x(1:length(x1(:,1)),:);
• xc=x0/2+x1/2;
• sound(xc,44100); echo
Przetwarzanie dźwięku
Widmo fft
Spectrum
Segmentacja reshape
specgram
Obrazy (pliki „jpg”)
•
•
•
•
•
•
•
Imread, imwrite uint8 double
X=imread(‘kosciol.jpg’)
function y=rys(x)
y=double(x);
y1=y/256;
y2=y1.*sin(y1*256);
image(abs(y2))
Film
%sprężyna
clg
m=moviein(20);
v=2*pi:0.01:6*pi;
for i=1:20
plot(v*i/20,sin(v));
axis([0,12*pi,-1,1])
m(:,i)=getframe;
end;
clg
movie(m,-4)
Symulacja generatora
dźwiękowego
• Chirp
sinus kluczowany
• Szum
• fp=44100; fs=1000; df=1000; t=0:1/fp:1;
• X=sin(2*pi*(fs+df*t/max(t)).*t);
Przetwarzanie wyników z
oscyloskopu
Dane w ascii
Interface graficzny
GUI
Wywołuje się poleceniem guide
Wkopiować np. przycisk pushButton
Uruchamiamy inspektora w oknie View
Wpisujemy w wierszu string np. start
Zapisujemy nazwę i uruchamiamy (run)
Wpisujemy na końcu program np. x=1:10
Figure
stem(x)
Możliwe zagadnienia i testy