Contents
1. Pendahuluan
- Apa itu MATLAB
- Keunggulan-keunggulan MATLAB
2. Lingkungan Kerja MATLAB
- Memulai MATLAB
- Command Window
- Workplace
- Current Directory
- Command History
3. Variabel dan Operator
- Definisi dari Variabel dan operator
- Contoh-contoh operator
4. Matriks dan vektor
- Cara penulisan vector dan matriks di MATLAB
5. Pemrograman pada MATLAB
M-File
Logical Operation (Programming)
- For
- While
- Switch
- If
6. Plotting Graphical dan suara
- 2D
- 3D
- Movie
- Suara/musik
7. Statistik menggunakan MATLAB
8. Penyelesaian system persamaan aljabar
9. Analisis fungsi dan interpolasi
10. Aplikasi-aplikasi dalam ilmu matematika
- Fourier
- Integral
- Differential
- Polynomial
11. Referensi
1
Bab I
Pendahuluan
ATLAB (singkatan dari Matrix LABoratory), adalah sebuah lingkungan komputasi numerikal dan bahasa pemrograman komputer generasi keempat. Dikembangkan oleh The MathWorks.Inc, MATLAB memungkinkan manipulasi matriks, pem-plot-an fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan peng-antarmuka-an dengpeng-antarmuka-an program dalam bahasa lainnya. Meskipun hpeng-antarmuka-anya bernuansa numerik, sebuah kotak kakas (toolbox) yang menggunakan mesin simbolik MuPAD, memungkinkan akses terhadap kemampuan aljabar komputer. Sebuah paket tambahan, Simulink, menambahkan simulasi grafis multiranah dan Desain Berdasar-Model untuk sistem terlekat dan dinamik.( http://id.wikipedia.org)
Pada tahun 2004, MathWorks mengklaim bahwa MATLAB telah dimanfaatkan oleh lebih dari satu juta pengguna di dunia pendidikan dan industri. MATLAB pertama kali diadopsi oleh insinyur kontrol, tapi lalu menyebar secara cepat ke berbagai bidang lain. Kini juga digunakan di bidang pendidikan, khususnya dalam pengajaran aljabar linear dan analisis numerik, serta populer di kalangan ilmuwan yang menekuni bidang pemrosesan citra.
Berikut di bawah ini merupakan karakteristik dari MATLAB:
Bahasa pemrogramannya berdasarkan pada matriks (baris dan kolom)
2
Tersedia banyak toolbox untuk aplikasi-aplikasi khusus seperti; Simulink, Neural Network, State Flow, Data Acquisition Toolbox, Communications Blockset, Fuzzy Logic Toolbox, Image Acquisition Toolbox, Signal Processing Blockset, dan lain sebagainya.
Dalam menulis kode programnya, tidak harus mendeklarasikan array terlebih dahulu.
Memiliki waktu pengembangan program yang lebih cepat dibandingkan dengan pemrograman tradisional seperti Fortran, dan C.
3
Bab II
Lingkungan Kerja MATLAB
2.1 Membuka Program MATLABMembuka program MATLAB dapat dilakukan dengan mengeksekusi ikon MATLAB di layar komputer ataupun melalui tombol Start di Windows. Setelah proses loading program, jendela utama MATLAB akan muncul seperti di bawah ini.
4
Bab VI
Grafik dan Suara
ATLAB mempunyai beberapa keunggulan dalam pengolahan grafik dan suara yaitu mampu menampilkan dan mengolah grafik serta suara dengan command yang sederhana dan fleksibel. Dalam bab ini akan dibahas tentang cara membuat grafik dan mengolahnya, serta mebuat kode dan membaca suara pada MATLAB.
Kita dapat mempelajari demo untuk membuat dan memvisualisasikan grafik baik 2D maupun 3D yang terdapat pada
Help kemudian klik demos, Graphics, cari 2d atu 3d. Kita dapat ,
menjalankan M-file yang terdapat pada demo tersebut.
6.1 Plot 2 dimensi
Dalam mebuat grafik 2 dimensi, fungsi dasar yang terdapat pada MATLAB yaitu fungsi plot. Untuk mengetahui definisi fungsi ini, kita dapat mengetik help plot atau helpwin plot pada command window MATLAB.
Coba kita buat plot sederhana dengan menggunakan perintah
plot. Ketikkan perintah di bawah ini pada command window
MATLAB.
Akan muncul window baru berisi figure hasil plotting. Perhatikan kegunaan dari ikon yang ada.
M
>> x=1:1:9;
>> y=[10 11 15 14 13 17 15 18 16]; >> plot(x,y)
5
Gambar 6.1 Jendela figure
Kita juga bisa memberikan judul plot, label sumbu x dan sumbu y, memberikan legenda, dan lain sebagainya pada jendela figure, jika kita tidak melakukannya pada command window di MATLAB.
Berikut dibawah ini merupakan command yang sering digunakan untuk membuat dan mengolh grafik 2 dimensi.
Table 6.1 Perintah untuk mebuat grafik 2D
Perintah Fungsi
plot Membuat grafik 2 Dimensi xlabel Memberi label pada sumbu-x ylabel Memberi label pada sumbu-y title Memberi judul di atas area plot gtext(string) Menempatkan teks dengan mouse
text(x,y,string) Menambahkan tekspada lokasi (x,y) di grafik yang aktif
grid on Memunculkan grid di dalam area plot BELUM
DIKASIH KETERANG AN
6 grid off Menghapus grid
axis off Menghilangkan tampilan sumbu koordinat pada plot
axis on Menampakkan kembali sumbu koordinat axis (….) Membuat batas-batas plot pada sumbu x dan y axis equal Mengubah skala sumbu-x dan sumbu-y menjadi
sama
axis square Mengubah bentuk area plot menjadi bujur sangkar Xlim(…) Membatasi plot pada sumbu x
Ylim(…) Membatasi plot pada sumbu y Legend (….) Menyisipkan legenda ke dalam plot
legend off Menghilangkan keterangan dari grafik yang aktif clf “clear figure”, mengosongkan figure window yang
sedang aktif.
Sekarang akan kita buat plot persamaan kuadrat y=2x2+5x-7, dengan x antara -10 sampa dengan 10. Ketikkan perintah di bawah ini pada command window MATLAB.
Kita dapat menyalin hasil plot yang dihasilkan MATLAB, ke dalam Microsoft word dengan cara klik Edit pada menubar, plih
Copy Figure, kemudian paste ke dalam dokumen Microsoft word
yang kita inginkan, sehingga akan dihasilkan plot seperti pada gambar 6.2. >> clear >> x=-6:1:6; >> y=2*x.^2+5*x-7; >> plot(x,y) >> xlabel('sumbu x') >> ylabel('sumbu y')
>> title(' Plot kurva y=2x^2+5x-7') >> grid
7
Gambar 6.2 Contoh Plot fungsi kuadrat Terdapat tiga bentuk penulisan fungsi plot, yaitu:
plot(x,y), menampilkan vektor y (sumbu vertikal) terhadap vektor x (sumbu horizontal).
plot(y) menampilkan vektor y terhadap indeksnya.
plot(x,y,s), menampilkan vektor y terhadap vektor x, dengan format menurut string s. String s menyatakan warna, bentuk penanda dan bentuk garis antarnilai.
Berikut adalah beberapa nilai yang dapat digunakan pada string s. Tabel 6.2 Warna, bentuk penanda dan bentuk garis
Simbol Warna Simbol Penandaan Simbol Style garis
b Biru . Titik - Garis lurus
g Hijau o Lingkaran : Garis titik-titik r Merah x Tanda silang -. Garis terpotong
dan titik -6 -4 -2 0 2 4 6 -20 0 20 40 60 80 100 sumbu x s u m b u y
8
c Cyan + Tanda plus -- Garis terpotong-potong m Magenta * Bintang Y Kuning s Bujursangkar K Hitam d Diamond w Putih ^ Segitiga ke atas v Segitiga ke bawah < Segitiga ke kiri > Segitiga ke kanan p Pentagram h Heksagram
Jika kita tidak memilih warna pada saat menggunakan perintah plot, MATLAB akan memulainya dengan warna biru dan berputar berurutan ke tujuh warna pertama dalam tabel untuk setiap penambahan garis. Standar style garis adalah garis lurus kecuali jika kita memberikan style garis yang lain pada saat menggunakan perintah plot atau melalui jendela figure.
Untuk membuat plot yang terdapat string pada table 6.2, ketikkan code seperti dibawah ini di dalam M-file.
t=0:0.1:5; % inkremen=0.1 agar kurva terlihat mulus x=2*t-3; % fungsi linear
y=2*t.^2+5*t-7; % fungsi kuadrat
z=t.^3-5*t.^2+2*t+1; % fungsi polinomial orde 3 atau kubik
plot(t,x,'r-','LineWidth',1.5,hold on
plot(t,y,'b-.','LineWidth',1.5),hold on
plot(t,z,'k--','LineWidth',1.5) legend('x','y','z','FontSize',12) xlabel('t','FontSize',12)
ylabel('fungsi x, y, dan z','FontSize',12)
title('Fungsi linear, kuadrat, dan kubik', 'FontSize',12) grid on
9
Setelah semua code pada M-file telah diketik semua, kemudian simpan dan jalankan dengan klik icon run atau tekan tombol F5 pada keyboard.
Gambar 6.3 Plot fungsi linear, kuadrat, dan kubik
Berbagai fungsi yang berkaitan dengan plot di atas, berlaku pula untuk plot diskrit, plot logaritmik dan plot dalam koordinat polar. Berikut pada tabel 6.2 merupakan beberapa fungsi plot yang menggunakan skala logaritmik.
Tabel 6.3 Fungsi skala logaritmik
Fungsi keterangan
semilogy( ... ) Plot dengan sumbu-y menggunakan skala logaritmik (basis 10)
semilogx( ... ) Plot dengan sumbu-x menggunakan skala logaritmik (basis 10)
loglog( ... ) Plot dengan sumbu-x dan sumbu-y menggunakan skala logaritmik (basis 10) 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -20 -10 0 10 20 30 40 50 60 70 t fu n g si x, y, d a n z
Fungsi linear, kuadrat, dan kubik
x y z
10
Kita akan mocoba command pada tabel 6.3, yaitu pada fungsi semilogy dengan fungsi eksponensial positif. Ketikkan beberapa kode pada M-file seperti di bawah ini.
Gambar 6.4 Plot fungsi menggunakan semilogy 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 100 102 104 106 108 1010 1012 sumbu-x s u m b u -y Kurva y = exp(Ax) A=1 A=2 A=3 A=5 clear all clc x=linspace(0,5,500); y1=exp(x); y2=exp(2*x); y3=exp(3*x); y4=exp(5*x); semilogy(x,y1,x,y2,x,y3,x,y4) grid on xlabel('sumbu-x') ylabel('sumbu-y')
title('Kurva y = exp(Ax)')
11
6.1.2 Subplot
Perintah subplot digunakan untuk membuat beberapa plot dalam satu jendela figure. Perintah subplot dapat dipanggil dengan menggunakan syntax subplot(m,n,p), dimana m merupakan jumlah baris plot, n merupakan jumlah kolom plot, dan p merupakan urutan dari plot.
Untuk lebih memahami fungsi dari perintah subplot lihat contoh di bawah ini, yang diketik pada M-file, menulis pada M-file lebih efisien jika kita menulis langsung pada command window MATLAB. figure x=0:0.1:5; y1=exp(-2*x).*sin(20*x); y2=sin(5*x).^2; y3=cos(x).*sin(x); y4=cosh(x);
subplot(2,2,1); % membuat plot degan jumlah 2
baris dan 2 kolom pada urutan ke 1
plot(x,y1) xlabel('x') ylabel('y1') title('y1=exp(-2*x).*sin(20*x)') grid on axis([ 0 5 -1 1])
subplot(2,2,2); %membuat plot degan jumlah 2
baris dan 2 kolom pada urutan ke 2
plot(x,y2) xlabel('x') ylabel('y2') title('y2=sin(5*x).^2') grid on axis([ 0 5 -1 1])
subplot(2,2,3); %membuat plot degan jumlah 2
baris dan 2 kolom pada urutan ke 3
plot(x,y3) xlabel('x')
12 Gambar 6.5 Subplot 0 1 2 3 4 5 -1 -0.5 0 0.5 1 x y1 y1=exp(-2*x).*sin(20*x) 0 1 2 3 4 5 -1 -0.5 0 0.5 1 x y2 y2=sin(5*x).2 0 1 2 3 4 5 -1 -0.5 0 0.5 1 x y3 y3=cos(x).*sin(x) 0 1 2 3 4 5 0 20 40 60 80 x y4 y4=cosh(x) title('y3=cos(x).*sin(x)') grid on axis([ 0 5 -1 1])
subplot(2,2,4); %membuat plot degan jumlah 2
baris dan 2 kolom pada urutan ke 4
plot(x,y4) xlabel('x') ylabel('y4') title('y4=cosh(x)') grid on axis([ 0 5 0 80])
13
6.1.2 ezplot
Perintah ezplot digunakan untuk membuat plot dengan membuat simbol atau variabel terlebih dahulu kemudian mendefinisikan suatu fungsi terlebih dahulu. Untuk mendefinisikan suatu variabel atau simbol dapat menggunakan perintah syms.
Kita akan membuat plot suatu fungsi dibawah ini dengan menggunakan ezplot
0
2 3
y
x
Gambar 6.6 Plot menggunakan fungsi ezplot
-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6 x y x3-y2 = 0 >>syms x y; >>ezplot(x^3-y^2) >>grid on
14
Selain fungsi plot dari ezplot terdapat juga seperti fungsi berikut ini: ezcontour, ezcontourf, ezmesh, ezmeshc, ezplot3, ezpolar, dan ezsurf, dan ezsurfc. Untuk mengetahui fungsi tersebut dapat dicari pada help, demos di MATLAB help.
Plot yang sudah dibahas sebelumnya merupakan cara mebuat plot dengan garis lurus. Sekarang akan dibahas cara membuat plot dengan menggunakan perintah bar, stairs, errorbar, polar, stem, scatter dan fill. Masih ada fungsi plot untuk 2 dimensi yang lain yang tidak kita bahas, tentu kita bisa mempelajarinya lewat help, demos pada MATLAB.
6.1.3 bar dan barh
Bar digunakan untuk membuat plot batang pada posisi vertikal, sedangkan barh digunakan untuk membuat plot batang pada posisi horizontal.
% Contoh plot bar dan barh
x = -2.9:0.2:2.9; subplot(1,2,1) bar(x,exp(-x.*x)); title('bar') subplot(1,2,2) barh(x,exp(-x.*x)); title('barh') grid
15
Gambar 6.7 Contoh Plot bar dan barh
6.1.4 stairs
Satirs step graphs digunakan untuk membuat grafik waktu domain sample dari data digital.
-4 -2 0 2 4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 bar 0 0.5 1 -3 -2 -1 0 1 2 3 barh
% Contoh plot stairs
t=0:0.1:10;
y=sin(2*pi*t); % inkremen stairs 0.1 detik
subplot(1,2,1) stairs(t,sin(t)) xlabel('t') ylabel('y') title('y=sin(t)') grid on subplot(1,2,2) stairs(t,cos(t),'r') xlabel('t') ylabel('y') title('y=cos(t)')
16
Gambar 6.8Contoh Plot stairs
6.1.5 errorbar
Errorbar ………
Contoh membuat errorbar simetri dengan panjang dua satuan standar deviasi. 0 5 10 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 t y y=sin(t) 0 5 10 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 t y y=cos(t)
% Contoh plot errorbar
X = 0:pi/10:pi; Y = sin(X);
E = std(Y)*ones(size(X)); errorbar(X,Y,E)
17
Gambar 6.9 Contoh Plot errorbar
6.1.6 Polar
Polar merupakan suatu perintah dalam MATLAB yang berfungsi untuk menggambar grafik dalam koordinat polar. Syntax yang sering digunakan yaitu polar(theta,rho), membuat grafik dalam koordinat polar, dengan sudut theta dan jari-jari rho.
-0.5 0 0.5 1 1.5 2 2.5 3 3.5 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4
% Contoh plot polar
t=0:.01:2*pi; subplot(1,2,1) polar(t,abs(sin(2*t).*cos(2*t)),'b'); title('abs(sin(2*t).*cos(2*t)') subplot(1,2,2) polar(t,(sin(2*t)),'r'); title('sin(2*t)')
18
Gambar 6.10 Contoh Plot polar
6.1.7 Stem
Fungsi stem digunakan untuk membuat rangkaian data diskrit. 0.25 0.5 30 210 60 240 90 270 120 300 150 330 180 0 abs(sin(2*t).*cos(2*t) 0.5 1 30 210 60 240 90 270 120 300 150 330 180 0 sin(2*t)
% Contoh plot stem
x = 0:0.1:4; %inkremen untuk scatter 0.1
y = sin(x.^2).*exp(-x); stem(x,y)
19
Gambar 6.11 Contoh Plot stem
6.1.8 Scatter ……….. 0 0.5 1 1.5 2 2.5 3 3.5 4 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35
Plot menggunakan stem
% Contoh plot scatter
t=0:.5:10; % inkremen untuk scatter 0.5
y=sin(t) z=t.^2-5*t+3 subplot(1,2,1) scatter(t,y,'r*'); title('y=sin(t)') subplot(1,2,2) scatter(t,z,'b+');; title('z=t.^2-5*t+3')
20
Gambar 6.12 Contoh Plot scatter
6.1.8 fill
Fill merupakan suatu fungsi pada MATLAB yang digunakan untuk membuat grafik segi banyak berwarna pada grafik 2 dimensi.
0 5 10 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 y=sin(t) 0 5 10 -10 0 10 20 30 40 50 60 z=t.2-5*t+3
% Contoh plot fill
% Segi delapan warna hijau
subplot(1,2,1) t = (1/16:1/8:1)'*2*pi; x = sin(t); y = cos(t); fill(x,y,'g') axis square
title('Segi delapan warna hijau')
% Segi duabelas warna merah
subplot(1,2,2) n=-6:6; a=sin(n*pi/6); b=cos(n*pi/6); fill(a,b,'r') axis square
21
Gambar 6.13 . Contoh plot fill
6.2 Plot 3 dimensi
Pada subbab ini akan dibahas beberapa fungsi pada MATLAB untuk membuat grafik/plot 3 dimensi.
6.2.1 Plot garis
Plot garis di dalam ruang 3-dimensi Ini mirip dengan plot 2-dimensi, tetapi kali ini digunakan command plot3( ... ), dan dibutuhkan vektor z, untuk dimensi ketiga. Berikut ini merupakan contoh code yang ditulis pada M-file:
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
Segi delapan warna hijau
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
Segi duabelas warna merah
% Contoh 1: plot 3 dimensi helix
t = 0:pi/50:5*pi; plot3(sin(t),cos(t),t)
xlabel('sin(t)');ylabel('cos(t)');
zlabel('t');title ('Helix');
grid on
22
Gambar 6.14 Contoh plot3 Helix
Perhatikan bahwa command label, title, grid, axis, hold, dan subplot juga berlaku di sini. Kita juga bisa merotasi gambar 3- dimensi tersebut dengan cara men-klik ikon rotate dan dragging mouse di atas gambar atau mengedit plot dengan melalui jendela figure. -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 0 5 10 15 20 sin(t) Helix cos(t) t
% Contoh 2: plot 3 dimensi persegi panjang X = [10 20 20 10 10]; Y = [5 5 15 15 5]; Z = [0 0 70 70 0]; plot3(X,Y,Z); grid on;
xlabel('sumbu X'); ylabel('sumbu
Y')
zlabel('sumbu Z');
title ('Persegi panjang');
23
Gambar 6.15 Contoh plot3 Persegi panjang
6.2.2 Mesh dan meshc
Fungsi mesh digunakan untuk membuat plot grafik 3-D dalam bentuk mesh surface. Sebelum kita menggunakan fungsi ini sebaiknya kita mengenal fungsi meshgrid terlebih dahulu. Fungsi ini menjalankan 2 x2 D array untuk plot 3-D.
0 5 10 15 20 25 0 5 10 15 20 0 20 40 60 80 sumbu X Persegi panjang sumbu Y s u m b u Z >> x=[1 3 5]; >> y=[10 15 20]; >> [xi yi]=meshgrid(x,y) xi = 1 3 5 1 3 5 1 3 5 yi = 10 10 10 15 15 15 20 20 20
24
Perhatikan bahwa matriks xi berisi replikasi baris dari array x sedangkan yi berisi replika kolom y. Nilai z dihitung dari array xi dan yi.
Untuk menggunakan perintah mesh dan meshc sebaiknya digunakan cara di bawah ini:
1) Definisikan batas-batas nilai x dan y yang akan diplot.
2) Gunakan perintah meshgrid untuk “mengisi” bidang-XY dengan jalinan titik.
3) Hitunglah fungsi 3-dimensi untuk jalinan titik tersebut atau tentukan fungsi z.
4) Buatlah plot dengan perintah mesh atau meshc.
Untuk mengetahu fungsi mesh dan mesh c, ketik perintah dibawah ini dalam M-file.
% Contoh plot menggunakan mesh
x=-2*pi:0.1:2*pi;% mendefinisikan batas nilai x
y=x;% mendefinisikan batas-batas nilai y
[x,y] = meshgrid(-2*pi:0.1:2*pi);
z = sin(x).*cos(y); % mendefinisikan fungsi 3-D
mesh(x,y,z) xlabel('x') ylabel('y') zlabel('z')
25
Gambar 6.16 Contoh plot mesh
Colormap digunakan untuk mengatur permukaan dengan warna yang didefinisikan oleh pengguna. Jika perintah colormap tidak ditambahkan maka MATLAB akan menggunakan warna permukaan secara default. Berikut ini daftar colormap yang tersedia dalam MATLAB.
26
Meshc digunakan untuk memplot grafik 3-D (mesh surface) bersama plot kontur di bawah permukan plot.
Gambar 6.18 Contoh plot meshc % Contoh plot menggunakan meshc
x=-2*pi:0.1:2*pi;% mendefinisikan batas-batas
nilai x
y=x;% mendefinisikan batas-batas nilai y
[x,y] = meshgrid(-2*pi:0.1:2*pi);
z = sin(x).*cos(y); % mendefinisikan fungsi 3-D
meshc(x,y,z) xlabel('x') ylabel('y') zlabel('z')
27
6.2.3 surf, surfc, dan surfl
Fungsi surf sama dengan mesh digunakan untuk membuat plot grafik 3-D dalam bentuk surface tapi untuk permukaan yang ’gelap’.
Sekarang kita coba contoh yang lain untuk memplot fungsi 3-dimensi dengan menggunakan perintah surf.
r
r
z
sin(
)
, dimana
r x2y2Gambar 6.19 Contoh plot surf
-10 -5 0 5 10 -10 -5 0 5 10 -0.5 0 0.5 1
% Contoh plot menggunakan surf
x = linspace(-10,10,40);y = x; [X,Y] = meshgrid(x,y);
R = sqrt(X.^2+Y.^2); Z = sin(R)./(R+eps); surf(X,Y,Z);
28
Dalam hal ini digunakan variabel eps, untuk mencegah perhitungan 0/0 ketika R = 0.
surfc digunakan untuk memplot grafik 3-D (surf surface) bersama plot kontur di bawah permukan plot. Sebagai contoh akan dibuat sebuah persamaan parabola hiperbol.
2 2
x
y
z
dimana -1< x <1 dan, -1< y <1
Gambar 6.20 Contoh plot surfc % Contoh plot menggunakan surfc
x=-1:0.1:1; y=x; [xi yi]=meshgrid(x,y); zi=yi.^2-xi.^2; surfc(xi,yi,zi) axis off
29
Fungsi surf sama dengan surf yang digunakan untuk membuat plot grafik 3-D dalam bentuk surface tapi untuk permukaan yang ber ’shading’.
2
x
ye
z
Gambar 6.21 Contoh plot surfc
Pada baris ke tujuh terdapat perintah shading, yang digunakan untuk mengontrol kegelapan warna yang digunakan.
% Contoh plot menggunakan surfl
x=-3:0.1:3; y=x; [xi yi]=meshgrid(x,y); zi=yi.*exp(-xi.^2); surfl(xi,yi,zi) shading interp colormap(pink)
30
6.2.4 Contour
Fungsi dua variabel, misalkan z = f(x,y) bisa digambarkan konturnya dalam dua dimensi dengan perintah berikut ini:
Table 6.3 Fungsi contour
Fungsi Keterangan
contour(X,Y,Z) Menggambar kontur dari nilai di Z dengan 10 level. Elemen Z diterjemahkan sebagai level-level di atas bidang (x,y)
C = contour(X,Y,Z) Menghitung matriks kontur C contour(X,Y,Z,n) Menggambar kontur dengan n level contour( ... ,
‘string’)
menggambar kontur dengan properti yang ditentukan oleh string (lihat tabel 6.2) clabel(C) Menuliskan angka pada garis-garis kontur
untuk menunjukkan level
Mari kita gambarkan kontur dari fungsi sin(r)/r pada sub bab 6.2.3, lalu bandingkan dengan plot permukaannya:
% Contoh perbandingan plot permukaan dan plot kontur
x = linspace(-10,10,40); y = x; [X,Y] = meshgrid(x,y); R = sqrt(X.^2+Y.^2); Z = sin(R)./(R+eps); meshc(X,Y,Z); colormap jet contour(X,Y,Z);
31
Gambar 6.22 Contoh plot contour
6.2.5 Sphere dan cylinder
MATLAB mempunyai beberapa fungsi untuk menggambarkan plot permukaan yang khusus yaitu fungsi sphere dan cylinder.
The sphere function generates the x-, y-, and z-coordinates of a unit sphere for use with surf and mesh.
32
Table 6.4 Fungsi sphere
Fungsi Keterangan
sphere generates a sphere consisting of 20-by-20 faces. sphere(n) draws a surf plot of an n-by-n sphere in the
current figure.
[X,Y,Z] =sphere(n) returns the coordinates of a sphere in three matrices that are (n+1)-by-(n+1) in size. You draw the sphere with surf(X,Y,Z) or mesh(X,Y,Z)
Gambar 6.23 Contoh plot sphere % Contoh plot sphere
sphere
33
Cylinder generates x-, y-, and z-coordinates of a unit cylinder. You can draw the cylindrical object using surf or mesh,or draw it immediately by not providing output arguments.
Berikutnya akan kita buat sebuah kerucut dengan menggunakan perintah cylinder.
Gambar6.24 Contoh plot cylinder (kerucut)
Contoh yang berikutnya kan dibuat sebuah plot 3-D dengan profil kurva r=3sin(t).
% Contoh plot cylinder
cylinder([1 0])
h = findobj('Type','surface');
set(h,'CData',rand(size(get(h,'CData'))))
34
Gambar 6.25 Contoh plot cylinder
6.3 Animasi
% Contoh plot cylinder
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(3+sin(t)); surf(X,Y,Z)
35
Gambar 6.26 Contoh plot animasi 1
[x,y] = meshgrid([-10:0.5:10]); for j = 1:15 z = bessel(0, (j-1)*0.2 + sqrt(x.^2 +y.^2)); surf(x,y,z) axis([-10 10 -10 10 -.5 1]) M(j) = getframe; end frame_order = [1:15 14:-1:1]; number_repeats = 7;
36
Gambar 6.26 Contoh plot animasi 1
h = uicontrol('style','slider','position',...
[10 50 20 300],'Min',1,'Max',16,'Value',1)
for k = 1:16 plot(fft(eye(k+16))) axis equal set(h,'Value',k) M(k) = getframe(gcf); end clf axes('Position',[0 0 1 1]) movie(M,30)
37
6.4 Suara
MATLAB juga bisa digunakan untuk mengolah suara yang mempunyai format WAV, menjadi bentuk vektor dan frekuensi sampling. Untuk menyuarakan suatu vektor, ataupun membaca dan menyimpan file audio berformat WAV, digunakan perintah berikut ini:
Tabel fungsi suara
Fungsi Keterangan
[x,Fs] =
wavread(‘nama_file’)
Membaca file berformat WAV dan menyimpannya dalam vektor x, serta mengembalikan frekuensi sampling Fs dari file tersebut. Command ini juga bisa membaca file berformat WAV multi kanal.
wavwrite(x,Fs,’nama_file’) Menuliskan file berformat WAV dari vektor x dengan frekuensi sampling Fs. sound(x,Fs) Menyuarakan vektor x dengan
frekuensi sampling Fs.
soundsc(x,Fs) Sama seperti sintaks sebelumnya, tetapi vektor x terlebih dahulu diskalakan pada selang –1 ≤ x ≤ +1.
File berformat WAV yang akan dibaca harus tersimpan di direktori Matlab\work, atau harus dirinci drive, direktori dan nama file jika file tersimpan di direktori lain atau.