Lisans Üstü Çalışmalarda Araştırma
Yöntemleri Çalıştayı
MATLAB
Nedir?
Nasıl Kullanılır?
Ahmet Bingül
Gaziantep Üniversitesi
Fizik Mühendisliği Bölümü
Nisan 2014
Sayfa 1
Giriş
Bilim adamı ve mühendis için vazgeçilmez araçlar
Veri
Toplama
Bilgisayar
Programlama
Veri
Analizi
Sayısal
Yöntemler
Ürün
Sayfa 2
Bilgisayar programlama, sayısal yöntemler ve tasarım…
Sayfa 3
MATLAB (MATrix LABoratory)
MATLAB
Sayısal ve Sembolik hesap yapmak için kullanılan
4.nesil programlama dilidir.
Üretici firma: MathWorks (Aralık 1984)
http://www.mathworks.com
Wikipedia:
http://en.wikipedia.org/wiki/MATLAB
Sayfa 4
MATLAB’ın Kabiliyetleri (Temel)
- Skaler, vektör ve matrislerle işlemler
- Algoritma uygulama ve geliştirme (m-file)
- Fonksiyon oluşturma
- Dosyadan veri okuma
- Grafik çizme
- Kök bulma
- Optimisazyon
- Eğri uydurma (Curve fitting)
- Temel istatiksel hesaplama
Sayfa 5
MATLAB’ın Kabiliyetleri (Orta)
- Sembolik hesaplama
- Grafik tabanlı kullanıcı ara-yüzü (GUI)
- Diğer diller (C++, Fortran) ile bağ kurma
- Birçok veri toplama kartları ile uyumlu
- Ses işleme
- Görüntü ve Video işleme
- Sinyal işleme
- Fourier Dönüşümü
- Laplace Dönüşümü
- Rastgele sayılar ile modelleme (MonteCarlo)
Sayfa 6
MATLAB’ın Kabiliyetleri (İleri)
- Sistem Modelleme (Simulink)
- Yapay sinir ağları
- Bulanık mantık
- Anten tasarımı
- Akustik dalga oluşturma
- Optik detektör başarım analizi
-…
*** Ders notları ***
EP375 Computational Physics
http://www1.gantep.edu.tr/~bingul/ep375
Sayfa 7
MATLAB Kullanıcı Arayüzü
Sayfa 8
İlk Bilgiler
help komut
clear
clc
Yardım
Bellekteki bütün değişkenleri sil
Çalışma ekranının temizle
ans
eps
inf
NaN
i or j
pi
Sonuçların atandığı varsayılan değişken
En küçük sayı (1 + eps > 1)
Sonsuz
Not a number
√-1
π
Sayfa 9
Veri
Tipleri
Sayfa 10
Skaler İşlemler
>> 4 + sqrt(3)
ans = 5.7321
>> a = 5
a = 5
>> a = 11;
>> b = 22;
>> c = a + b
c = 33
>> z = 3 + 4i;
>> abs(z)
ans = 5
Sayfa 11
Diziler (Vektörler)
>> A = [5 -3 4 2];
>> B = [1 3 0 7];
>> C = A + B
C = 6 0 4 9
>> C’
Ans =
6
0
4
9
>> A = [5 -3 4
>> length(A)
ans = 4
>> mean(A)
ans = 2
>> std(A)
ans = 3.5590
>> max(A)
ans =
5
>> min(A)
ans =
-3
>>
2];
% eleman sayısı
% ortalama
% standart sapma
% en büyük
% en küçük
Sayfa 12
Matrisler
>> B = [1 0 3;
B =
1
-2
7
0
5
8
-2 5 6;
7 8 9]
3
6
9
>> det(B)
ans = -156
% determinant
>> inv(B)
ans =
0.0192
-0.3846
0.3269
% ters matris
-0.1538
0.0769
0.0513
0.0962
0.0769
-0.0321
Sayfa 13
Bazı Ön tanımlı fonksiyonlar
Function
abs(x)
sin(x)
cos(x)
tan(x)
sind(x)
cosd(x)
tand(x)
asin(x)
acos(x)
atan(x)
log(x)
log10(x)
exp(x)
mod(x,y)
Description
_
|x|
sine of x
(x is in radian)
cosine of x
tangent of x
sine of x
(x is in degrees)
cosine of x
tangent of x
angle in radian from sin‒1(x)
angle in radian from cos‒1(x)
angle in radian from tan‒1(x)
ln(x)
log10(x)
ex
x modulo y
(mod(12,5) = 2)
Sayfa 14
Koşul Yapıları
>> edit tekmi.m
a = input('input a: ');
if mod(a,2)==1
fprintf('%d is odd number\n',a)
else
fprintf('%d is even number\n',a)
end
>> tekmi
input a: 6
6 is even number
>>
Sayfa 15
Döngüler
>> edit loop1.m
k = 1;
while k<=6
fprintf('%d
k=k+1;
end
%d\n',k,k*k);
>> edit loop2.m
for k = 1:6
fprintf('%d
end
%d\n',k,k*k);
>>
1
2
3
4
5
6
loop1
1
4
9
16
25
36
>>
1
2
3
4
5
6
loop2
1
4
9
16
25
36
Sayfa 16
Çizim
>> x = -pi:0.1:pi;
>> y = sin(x);
>> plot(x,y)
>>
>> x = [0.1 0.2 0.3 0.4 0.5];
>> y = [0.2 0.4 1.0 0.5 0.2];
>> plot(x,y);
>>
Sayfa 17
Çizim
>> t = 0:0.01:2*pi;
>> polar(t, 4-4*sin(t));
>>
>>
>>
>>
p = 0:pi/50:10*pi;
plot3(p,sin(p),cos(p))
Sayfa 18
ciz.m
% 3D Plots
clc; clear; close all; grid on;
% defines vectors x and y
vx = -4 :0.2: 4;
vy = -3 :0.2: 3;
% calculates the necessary grid
[x,y] = meshgrid(vx, vy);
% calculates z and avoids a null denominator adding 'eps‘
z = x.*x + y.*y;
% generates the first figure using 'plot3'
figure
plot3(x,y,z)
% generates the second figure using 'meshc' to include the
% contour in the figure, and rotates the figure with 'view'
figure
meshc(x,y,z)
% generates the third 3D figure using 'surfc' to include the
% contour in the image, and also rotates the figure with 'view'
figure
surfc(x,y,z)
Sayfa 19
Dinamik Çizim
ciz.m
% Dynamic Plot
figure;
hold on;
grid on;
v = 10.0;
x = 0.0:0.1:10;
t = 0.0;
while 1
y = sin(x-v*t);
h = plot(x,y);
pause(0.1);
delete(h);
t = t + 0.01;
end
Sayfa 20
Basit Canlandırma
ciz.m
% Projectile Motion
hold on;
v0 = 100.0;
theta = 60 * pi/180;
g = 9.8;
t = 0.0;
w = 20;
axis([0 1000 0 1000]);
%
%
%
%
%
%
initial velocity (m/s)
initial angle
gravitational acceleration
time
width of the object
while
x =
y =
r =
t<=18
v0*cos(theta)*t;
v0*sin(theta)*t-0.5*g*t*t;
rectangle('Position', ...
[x-w/2,y-w/2,w,w]);
t = t + 0.5;
pause(0.5);
delete(r);
end
Sayfa 21
GUI
>> guide
Sayfa 22
Eğri Uydurma
>> cftool
Sayfa 23
Sembolik Hesaplama
>> syms a b
>> expand( (a+b)^3 )
ans = a^3 + 3*a^2*b + 3*a*b^2 + b^3
>> syms x
>> diff(x^2)
ans = 2*x
>> syms x
>> int(x^2)
ans = x^3/3
% türev
% integral
Sayfa 24
4 2
  (x
2
 y )dxdy
2
0 1
>> syms x y
>> int( int(x^2+y^2,x,-1,2),y,0,4 )
ans = 76
Sayfa 25
Ses İşleme
Sayfa 26
 Ses Kartı
digital-to-analog converter (DAC)
analog-to-digital converter (ADC)
Sayfa 27
 Matlab Ses ve
video fonksiyonları
Sayfa 28
Örnek: Ploting time & frequency domains of mic input
sound_mic_fft.m
Fs = 44100; % sampling rate in Hz
time =0.1; % duration in seconds
while 1
y = wavrecord(time*Fs, Fs, 'double'); % signal + noise (time domain)
subplot(2,1,1);
p1 = plot(y);
axis([0 time*Fs -0.1 0.1]);
xlabel('time (s)')
c = fft(y);
N = length(c);
f = Fs * (1:N)/N; % frequency
P = abs(c).^2;
% power (frequency domain)
subplot(2,1,2);
p2 = plot(f(1:N/2), P(1:N/2));
xlabel('frequency (Hz)')
pause(0.01);
delete(p1);
delete(p2);
end
Sayfa 29
Görüntü İşleme Araç Kutusu
imread()
imshow()
size()
imresize()
rgb2gray()
im2bw()
imhist()
histeq()
imwrite()
imcomplement()
imadd()
imrotate()
imcrop()
edge()
bwarea()
open an image file
display an image file
size of an image
resize an image
convert rgb image to grayscale
convert an image to BlackWhite
histogram of the image
histogram equilization
save image
comlement of an image
add a value to each pixel
rotate an image
crop an image
edge detection for an image
return area (number of pixels) for a given region
Sayfa 30
%
%
%
%
%
ip2.m
gray-scale histogram of an image
size(A) = 300
size(B) = 300
400
400
3
A = imread('cicek.jpg');
B = rgb2gray(A);
disp(size(A))
disp(size(B))
% plot
subplot(2,1,1); imshow(B)
subplot(2,1,2); imhist(B)
Sayfa 31
% ip4.m
% color components of an image
% copy images
A = imread('cicek.jpg');
B = A;
C = A;
D = A;
% RGB colors
B(:,:,2)=0; B(:,:,3)=0; % keep only red
C(:,:,1)=0; C(:,:,3)=0; % green
D(:,:,1)=0; D(:,:,2)=0; % blue
% plot
subplot(2,2,1); imshow(A)
subplot(2,2,2); imshow(B)
subplot(2,2,3); imshow(C)
subplot(2,2,4); imshow(D)
Sayfa 32
% ip5.m
% Rotating an image
A = imread('cameraman.tif');
subplot(2,2,1); imrotate(A, 0);
subplot(2,2,2); imrotate(A, 30);
subplot(2,2,3); imrotate(A, 90);
subplot(2,2,4); imrotate(A,180);
title('original')
title('30 deg')
title('90 deg')
title('180 deg')
Sayfa 33
% ip6.m
% Cropping an image
A = imread('pout.tif');
B = imcrop(A, [55 10 120 120]);
figure, imshow(A)
figure, imshow(B)
Sayfa 34
% ip7.m
% detect edges
clear; clc
% Read the sample image
A = imread('shapes.jpg');
B = edge(A,'canny');
C = edge(A,'canny', [0.1 0.2], 1);
D = edge(A,'sobel');
% plot
subplot(2,2,1); imshow(A)
subplot(2,2,2); imshow(B);
subplot(2,2,3); imshow(C);
subplot(2,2,4); imshow(D);
Sayfa 35
Jüpiter Üzerindeki Leke
Sayfa 36
% jupiter.m
clc; clear; figure
A = imread('jupiter2.jpg');
B = rgb2gray(A);
C = imcrop(B, [330 460 140 80]);
D = C > 160;
subplot(2,2,1);
subplot(2,2,2);
subplot(2,2,3);
subplot(2,2,4);
imshow(A);
imshow(B);
imshow(C);
imshow(D);
...
fprintf('Pixel area
fprintf('Real area
fprintf('Size of Earth
fprintf('Ratio
>> jupiter
Pixel area
Real area
Size of Earth
Ratio
=
=
=
=
=
=
=
=
%f\n',p_area);
%f km^2\n',r_area);
%f km^2\n',pi*RE^2);
%f\n',r_area/(pi*RE^2));
5299.500000
187620283.067867 km^2
127876644.008780 km^2
2.197197
Sayfa 37
Simulink
MathWorks’un
• Modelle
• Benzetim ve
• Analiz
için geliştirdiği
GUI tabanlı dinamik
programlama aracıdır.
Sayfa 38
Veri Toplama
Sayfa 39
Veri Toplama
Sayfa 40
Download

Lisansüstü Çalışmalarda MATLAB