Topik-Topik Khusus
Pada bab ini akan dipaparkan mengenai beberapa hal khusus yang belum dibahas pada
bab-bab sebelumnya.
di mana
adalah koefisien polinomial dan n adalah derajat polinomial. Salah satu
permasalahan dalam fungsi polinomial adalah mencari akar-akarnya. Dengan
menggunakan fungsi roots pada Matlab, akar-akar polinomial dapat dicari dengan
mudah dengan hasil berupa bilangan real atau bilangan kompleks. Adapun bentuk umum
fungsi roots adalah:
akar=roots(c)
di mana c adalah vektor baris yang berisikan koefisien semua suku dan konstanta pada
polinomial. Hasilnya akan disimpan dalam bentuk vektor berisi akar-akar polinomial.
Contoh berikut akan mengilustrasikan penggunaan fungsi roots untuk mencari akar-akar
polinomial berikut:
1.314881595248i
1.314881595248i
Polinomial ini memiliki 1 akar real (-1.5183) dan 2 akar berupa bilangan kompleks.
0.484014711572992i
0.484014711572992i
0.972673138142547i
0.972673138142547i
Polinomial ini memiliki 1 akar real (0.2990) dan 4 akar berupa bilangan kompleks.
Pada contoh tersebut, string 'A=ones(2,3)' hanyalah sebuah string yang tidak
bermakna apa-apa bila diperlakukan hanya sebagai string. Tetapi bila string ini diubah
menjadi command Matlab dengan perintah eval, maka string ini dapat menghasilkan
matriks A sesuai perintah yang terkandung dalam string tersebut.
reset_grafik.m
Simpan kedua skrip tersebut dalam folder yang sama dengan file gui_grafik_semua.m. Lalu
jalankan program dan lihat hasilnya:
Dari GUI tersebut terlihat bahwa grafik berbagai macam fungsi dapat dilukiskan di sebelah
kanan, asalkan ekspresi fungsi yang dimasukkan sesuai dengan ekspresi yang dikenali oleh
Matlab.
di mana:
nama_file
direktori
filter
string
:
:
:
:
nama file
direktori file
isian format file yang ingin dibuka, misalnya *.jpg, *.txt
Teks yang ingin ditampilkan pada kotak dialog
Berikut ini adalah contoh kode penerapannya dalam kasus membaca file teks:
%-------------------------------------------------%Latihan 2: Me-load Sembarang File
%-------------------------------------------------clear all;
clc;
%munculkan kotak dialog file
[nama_file,direktori]=uigetfile('*.txt','Latihan Load Data');
%menggabungkan direktori dan nama file
file_lengkap=[direktori nama_file];
%mulai dari sini, di manapun lokasi file tetap dapat terbaca
fid=fopen(file_lengkap,'r'); %membuka file
string=fgets(fid); %membaca isi file
fclose(fid); %menutup file
disp(string); %menampilkan hasil
Simpan skrip ini dengan nama latihan2.m pada sembarang folder. Lalu jalankan kode
tersebut untuk membuka sembarang file *.txt dari sembarang folder:
Pada kasus ini, skrip latihan2.m tersimpan di drive C. Sedangkan file yang dibaca (level net
p202.txt) berada pada drive D. Dengan perintah uigetfile, proses pencarian dan load
file menjadi lebih mudah.
File gambar akan dibaca sebagai matriks yang disimpan sebagai suatu variabel. Selanjutnya
untuk menampilkan file gambar dilakukan dengan perintah berikut:
imshow(variabel_gambar);
Perhatikan, nama file gambar pada perintah di atas harus dituliskan lengkap dengan
direktori beserta ekstensinya. Berikut ini adalah contoh penerapannya:
%-------------------------------------------------%Latihan 3: Membaca Gambar
%-------------------------------------------------clear all;
clc;
%munculkan kotak dialog file
[nama_gambar,direktori]=uigetfile('*.jpg','Latihan Load Gambar');
%menggabungkan direktori dan nama file
file_gambar=[direktori nama_gambar];
%membaca gambar
data_gambar=imread(file_gambar);
%menampilkan gambar
imshow(data_gambar);
Bila gambar yang dibaca merupakan gambar berwarna, maka variabel data_gambar
akan menjadi matriks berukuran m_piksel n_piksel 3. Angka 3 di sini menunjukkan
banyaknya kanal pada gambar (red, green, blue). Sedangkan bila gambar yang dibaca
berupa gambar grayscale, maka data variabel_gambar hanya berukuran m_piksel
n_piksel (gambar grayscale hanya memuat 1 kanal).
(a)
(b)
Untuk mengubah gambar berwarna menjadi grayscale, kita dapat menggunakan perintah
rgb2gray dengan pola:
gambar_grayscale=rgb2gray(gambar_rgb);
Melanjutkan contoh kode sebelumnya, berikut ini adalah contoh kode penerapannya yang
diketik lewat command window (hasil run sebelumnya jangan di-clear):
>> gambar_gray=rgb2gray(data_gambar);
>> imshow(gambar_gray);
Namun yang perlu diperhatikan adalah perintah imhist hanya dapat membaca satu kanal
(grayscale, red, green, atau blue). Oleh karena itu untuk menampilkan histogram citra
berwarna hanya dapat dilakukan per kanal.
Melanjutkan kode sebelumnya, berikut ini adalah contoh kode penerapan perintah imhist:
>> imhist(gambar_gray);
>>
>> imhist(data_gambar(:,:,2));
>>
>> imhist(data_gambar(:,:,3));
>>