Anda di halaman 1dari 138

MATLAB - Decision Making

Struktur pengambilan keputusan mensyaratkan bahwa programmer harus menentukan


satu atau lebih kondisi untuk dievaluasi atau diuji oleh program, bersama dengan pernyataan
atau pernyataan yang akan dieksekusi jika kondisi ditentukan benar, dan secara opsional,
pernyataan lain yang akan dieksekusi jika kondisi ditentukan sebagai salah.
Berikut ini adalah bentuk umum dari struktur pengambilan keputusan khas yang ditemukan
di sebagian besar bahasa pemrograman -

MATLAB memberikan jenis pernyataan pengambilan keputusan berikut. Klik tautan berikut


untuk memeriksa detailnya -

Sr.No Pernyataan & Deskripsi


.

1 jika ... pernyataan akhir


Sebuah jika ... akhir pernyataan terdiri dari ekspresi boolean diikuti oleh satu atau lebih
pernyataan.

2 jika ... lain ... pernyataan akhir


Sebuah pernyataan jika dapat diikuti oleh opsional lain pernyataan , yang mengeksekusi
ketika ekspresi boolean adalah palsu.

3 Jika ... elseif ... elseif ... lain ... pernyataan akhir
Sebuah jika pernyataan dapat diikuti oleh satu (atau lebih)
opsional elseif ... dan lain pernyataan, yang sangat berguna untuk menguji berbagai
kondisi.

1
4 pernyataan if bersarang
Anda dapat menggunakan satu pernyataan if atau elseif di dalam pernyataan if atau elseif
lainnya .

5 pernyataan switch
Sebuah saklar pernyataan memungkinkan variabel yang akan diuji untuk kesetaraan
terhadap daftar nilai.

6 pernyataan saklar bersarang


Anda dapat menggunakan satu pernyataan sakelar di dalam pernyataan sakelar lainnya .

MATLAB - Loop Types


Mungkin ada situasi ketika Anda perlu mengeksekusi blok kode beberapa kali. Secara
umum, pernyataan dieksekusi secara berurutan. Pernyataan pertama dalam suatu fungsi
dijalankan pertama, diikuti oleh yang kedua, dan seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur
eksekusi yang lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok
pernyataan beberapa kali dan berikut ini adalah bentuk umum dari pernyataan loop di
sebagian besar bahasa pemrograman -

2
MATLAB menyediakan jenis loop berikut untuk menangani persyaratan perulangan. Klik
tautan berikut untuk memeriksa detailnya -

Sr.No Jenis & Deskripsi Loop


.

1 while loop
Mengulangi pernyataan atau sekelompok pernyataan saat kondisi tertentu benar. Ini
menguji kondisi sebelum menjalankan badan perulangan.

2 untuk loop
Menjalankan urutan pernyataan beberapa kali dan menyingkat kode yang mengelola
variabel loop.

3 loop bersarang
Anda dapat menggunakan satu atau lebih loop di dalam loop lain.

Pernyataan Kontrol Loop


Pernyataan kontrol loop mengubah eksekusi dari urutan normalnya. Saat eksekusi
meninggalkan ruang lingkup, semua objek otomatis yang dibuat dalam lingkup itu akan
dimusnahkan.
MATLAB mendukung pernyataan kontrol berikut. Klik tautan berikut untuk memeriksa
detailnya.

Sr.No Pernyataan & Deskripsi Kontrol


.

1 pernyataan istirahat
Menghentikan pernyataan loop dan mentransfer eksekusi ke pernyataan segera setelah
loop.

2 lanjutkan pernyataan
Menyebabkan loop melewati sisa tubuhnya dan segera menguji ulang kondisinya sebelum
mengulang.

3
MATLAB - Vectors
Vektor adalah deretan angka satu dimensi. MATLAB memungkinkan pembuatan dua jenis
vektor -

 Vektor baris

 Vektor kolom

Vektor Baris
Vektor baris dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku,
menggunakan spasi atau koma untuk membatasi elemen.
r = [7 8 9 10 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
r=
7 8 9 10 11

Vektor Kolom
Vektor kolom dibuat dengan mengapit kumpulan elemen dalam tanda kurung siku,
menggunakan titik koma untuk membatasi elemen.
Demo Langsung
c = [7; 8; 9; 10; 11]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
c=
7
8
9
10
11

Mengacu pada Elemen Vektor


Anda dapat mereferensikan satu atau lebih elemen vektor dengan beberapa
cara. Komponen ke- i dari vektor v disebut sebagai v (i). Misalnya -
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements

4
v(3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 3
Saat Anda mereferensikan vektor dengan titik dua, seperti v (:), semua komponen vektor
dicantumkan.
v = [ 1; 2; 3; 4; 5; 6]; % creating a column vector of 6 elements
v(:)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1
2
3
4
5
6

MATLAB memungkinkan Anda memilih berbagai elemen dari vektor.


Sebagai contoh, mari kita membuat vektor baris rv dari 9 elemen, kemudian kita akan
mereferensikan elemen 3 sampai 7 dengan menulis rv (3: 7) dan membuat vektor baru
bernama sub_rv .
rv = [1 2 3 4 5 6 7 8 9];
sub_rv = rv(3:7)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
sub_rv =
3 4 5 6 7

5
Operasi Vektor
 MATLAB - Penambahan & Pengurangan Vektor
Anda dapat menambah atau mengurangi dua vektor. Kedua vektor operan harus berjenis
sama dan memiliki jumlah elemen yang sama.
Contoh
Buat file skrip dengan kode berikut -
A = [7, 11, 15, 23, 9];
B = [2, 5, 13, 16, 20];
C = A + B;
D = A - B;
disp(C);
disp(D);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
9 16 28 39 29
5 6 2 7 -11

 MATLAB - Perkalian Skalar Vektor


Saat Anda mengalikan vektor dengan angka, ini disebut perkalian skalar . Perkalian skalar
menghasilkan vektor baru yang berjenis sama dengan setiap elemen vektor asal dikalikan
bilangan.
Contoh
Buat file skrip dengan kode berikut -
v = [ 12 34 10 8];
m=5*v
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
m=
60 170 50 40
Harap dicatat bahwa Anda dapat melakukan semua operasi skalar pada vektor. Misalnya,
Anda dapat menambah, mengurangi, dan membagi vektor dengan besaran skalar.

6
 MATLAB - Transposisi Vektor
Operasi transpose mengubah vektor kolom menjadi vektor baris dan sebaliknya. Operasi
transpos diwakili oleh tanda kutip tunggal (').
Contoh
Buat file skrip dengan kode berikut -
r = [ 1 2 3 4 ];
tr = r';
v = [1;2;3;4];
tv = v';
disp(tr); disp(tv);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
1
2
3
4
1 2 3 4

 MATLAB - Menambahkan Vektor


MATLAB memungkinkan Anda untuk menambahkan vektor bersama-sama untuk membuat
vektor baru.
Jika Anda memiliki dua vektor baris r1 dan r2 dengan n dan m jumlah elemen, untuk
membuat vektor baris r dari n ditambah m elemen, dengan menambahkan vektor ini, Anda
menulis -
r = [r1,r2]
Anda juga dapat membuat matriks r dengan menambahkan dua vektor ini, vektor r2, akan
menjadi baris kedua dari matriks -
r = [r1;r2]
Namun, untuk melakukan ini, kedua vektor harus memiliki jumlah elemen yang sama.
Demikian pula, Anda dapat menambahkan dua vektor kolom c1 dan c2 dengan n dan m
jumlah elemen. Untuk membuat vektor kolom c dari n ditambah m elemen, dengan
menambahkan vektor ini, Anda menulis -
c = [c1; c2]
7
Anda juga dapat membuat matriks c dengan menambahkan dua vektor ini; vektor c2 akan
menjadi kolom kedua dari matriks -
c = [c1, c2]
Namun, untuk melakukan ini, kedua vektor harus memiliki jumlah elemen yang sama.
Contoh
Buat file skrip dengan kode berikut -
r1 = [ 1 2 3 4 ];
r2 = [5 6 7 8 ];
r = [r1,r2]
rMat = [r1;r2]

c1 = [ 1; 2; 3; 4 ];
c2 = [5; 6; 7; 8 ];
c = [c1; c2]
cMat = [c1,c2]
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
r=

Columns 1 through 7:
1 2 3 4 5 6 7

Column 8:
8

rMat =
1 2 3 4
5 6 7 8

c=
8
1
2
3
4
5
6
7
8

cMat =
1 5
2 6
3 7
4 8

 MATLAB - Besaran Vektor


Besar vektor v dengan elemen v1, v2, v3,…, vn, diberikan oleh persamaan -
| v | = √ (v1 2 + v2 2 + v3 2 +… + vn 2 )
Anda perlu mengambil langkah-langkah berikut untuk menghitung besarnya vektor -

 Ambil hasil kali vektor dengan sendirinya, menggunakan perkalian array (. *). Ini


menghasilkan vektor sv, yang elemennya adalah kuadrat dari elemen vektor v.
sv = v. * v;

 Gunakan fungsi penjumlahan untuk mendapatkan jumlah kuadrat dari elemen vektor


v. Ini juga disebut perkalian titik vektor v.
dp = jumlah (sv);

 Gunakan sqrt fungsi untuk mendapatkan akar kuadrat dari jumlah yang juga besarnya
vektor v.
mag = sqrt (s);
Contoh

9
Buat file skrip dengan kode berikut -
v = [1: 2: 20];
sv = v.* v; %the vector with elements
% as square of v's elements
dp = sum(sv); % sum of squares -- the dot product
mag = sqrt(dp); % magnitude
disp('Magnitude:');
disp(mag);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
Magnitude:
36.469

 MATLAB - Produk Vector Dot


Perkalian titik dari dua vektor a = (a1, a2,…, an) dan b = (b1, b2,…, bn) diberikan oleh -
ab = ∑ (ai.bi)
Perkalian titik dari dua vektor a dan b dihitung menggunakan fungsi titik .
dot(a, b);
Contoh
Buat file skrip dengan kode berikut -
v1 = [2 3 4];
v2 = [1 2 3];
dp = dot(v1, v2);
disp('Dot Product:');
disp(dp);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
Dot Product:
20

 Vektor dengan Elemen Spasi Seragam

10
MATLAB memungkinkan Anda membuat vektor dengan elemen spasi seragam.
Untuk membuat vektor v dengan elemen pertama f, elemen terakhir l, dan selisih antara
elemen adalah bilangan real n, kita tulis -
v = [f : n : l]
Contoh
Buat file skrip dengan kode berikut -
v = [1: 2: 20];
sqv = v.^2;
disp(v);
disp(sqv);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
1 3 5 7 9 11 13 15 17 19
1 9 25 49 81 121 169 225 289 361

MATLAB - Matriks
Matriks adalah deretan angka dua dimensi.
Di MATLAB, Anda membuat matriks dengan memasukkan elemen di setiap baris sebagai
angka yang dipisahkan koma atau spasi dan menggunakan titik koma untuk menandai akhir
setiap baris.
Misalnya, mari kita buat matriks 4 kali 5 a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a=
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8

Mereferensikan Elemen Matriks

11
Untuk mereferensikan elemen di baris ke- m dan kolom ke- n , dari matriks mx , kita tulis -
mx(m, n);
Misalnya, untuk merujuk ke elemen dalam 2 nd baris dan 5 th kolom, matriks yang , seperti
yang dibuat dalam bagian terakhir, kita ketikkan -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(2,5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 6
Untuk referensi semua elemen dalam m th kolom kita tipe A (:, m).
Mari kita buat vektor kolom v, dari elemen-elemen baris ke- 4 dari matriks a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
v = a(:,4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
v=
4
5
6
7
Anda juga dapat memilih elemen dalam m th melalui n th kolom, karena kita menulis ini -
a(:,m:n)
Mari kita buat matriks yang lebih kecil dengan mengambil elemen dari kolom kedua dan
ketiga-
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 2 3
3 4
4 5
5 6

12
Dengan cara yang sama, Anda bisa membuat sub-matriks yang mengambil sub-bagian dari
matriks.
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(:, 2:3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
2 3
3 4
4 5
5 6
Dengan cara yang sama, Anda bisa membuat sub-matriks yang mengambil sub-bagian dari
matriks.
Sebagai contoh, mari kita buat sub-matriks sa dengan mengambil bagian dalam dari a -
3 4 5
4 5 6
Untuk melakukan ini, tulis -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
sa = a(2:3,2:4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
sa =
3 4 5
4 5 6
Menghapus Baris atau Kolom dalam Matriks
Anda dapat menghapus seluruh baris atau kolom dari sebuah matriks dengan menetapkan
tanda kurung siku [] kosong ke baris atau kolom tersebut. Pada dasarnya, [] menunjukkan
larik kosong.
Misalnya, mari kita hapus baris keempat dari a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a( 4 , : ) = []

13
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a=
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
Selanjutnya, mari kita hapus kolom kelima dari a -
a = [ 1 2 3 4 5; 2 3 4 5 6; 3 4 5 6 7; 4 5 6 7 8];
a(: , 5)=[]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a=
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
Contoh
Dalam contoh ini, mari kita buat matriks 3-kali-3 m, lalu kita akan menyalin baris kedua dan
ketiga dari matriks ini dua kali untuk membuat matriks 4-kali-3.
Buat file skrip dengan kode berikut -
a = [ 1 2 3 ; 4 5 6; 7 8 9];
new_mat = a([2,3,2,3],:)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
new_mat =
4 5 6
7 8 9
4 5 6
7 8 9

Operasi Matriks
14
 MATLAB - Penambahan & Pengurangan Matriks
Anda dapat menambah atau mengurangi matriks. Kedua matriks operan harus memiliki
jumlah baris dan kolom yang sama.
Contoh
Buat file skrip dengan kode berikut -
a = [ 1 2 3 ; 4 5 6; 7 8 9];
b = [ 7 5 6 ; 2 0 8; 5 7 1];
c=a+b
d=a-b
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
c=
8 7 9
6 5 14
12 15 10
d=
-6 -3 -3
2 5 -2
2 1 8

MATLAB - Divisi (Kiri, Kanan) Matriks


Anda dapat membagi dua matriks menggunakan operator pembagian kiri (\) atau kanan
(/). Kedua matriks operan harus memiliki jumlah baris dan kolom yang sama.
Contoh
Buat file skrip dengan kode berikut -
a = [ 1 2 3 ; 4 5 6; 7 8 9];
b = [ 7 5 6 ; 2 0 8; 5 7 1];
c=a/b
d=a\b

Saat Anda menjalankan file, ini akan menampilkan hasil berikut -

15
c=
-0.52542 0.68644 0.66102
-0.42373 0.94068 1.01695
-0.32203 1.19492 1.37288

d=
-3.27778 -1.05556 -4.86111
-0.11111 0.11111 -0.27778
3.05556 1.27778 4.30556

 MATLAB - Operasi Skalar Matriks


Saat Anda menambahkan, mengurangi, mengalikan, atau membagi matriks dengan angka, ini
disebut operasi skalar .
Operasi skalar menghasilkan matriks baru dengan jumlah baris dan kolom yang sama dengan
setiap elemen matriks asli ditambahkan, dikurangi, dikalikan atau dibagi dengan angka.
Contoh
Buat file skrip dengan kode berikut -
a = [ 10 12 23 ; 14 8 6; 27 8 9];
b = 2;
c=a+b
d=a-b
e=a*b
f=a/b
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
c=
12 14 25
16 10 8
29 10 11

d=

16
8 10 21
12 6 4
25 6 7
e=
20 24 46
28 16 12
54 16 18
f=
5.0000 6.0000 11.5000
7.0000 4.0000 3.0000
13.5000 4.0000 4.5000

 MATLAB - Transposisi Matriks


Operasi transpose mengganti baris dan kolom dalam matriks. Ini diwakili oleh satu kutipan
(').
Contoh
Buat file skrip dengan kode berikut -
a = [ 10 12 23 ; 14 8 6; 27 8 9]
b = a'
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
10 12 23
14 8 6
27 8 9
b=
10 14 27
12 8 8
23 6 9

 MATLAB - Matriks Penggabungan


17
Anda dapat menggabungkan dua matriks untuk membuat matriks yang lebih besar. Sepasang
tanda kurung siku '[]' adalah operator penggabungan.
MATLAB memungkinkan dua jenis penggabungan -

 Rangkaian horizontal

 Rangkaian vertikal

Saat Anda menggabungkan dua matriks dengan memisahkannya menggunakan koma, mereka
hanya ditambahkan secara horizontal. Ini disebut penggabungan horizontal.
Atau, jika Anda menggabungkan dua matriks dengan memisahkannya menggunakan titik
koma, keduanya akan ditambahkan secara vertikal. Ini disebut penggabungan vertikal.
Contoh
Buat file skrip dengan kode berikut -
a = [ 10 12 23 ; 14 8 6; 27 8 9]
b = [ 12 31 45 ; 8 0 -9; 45 2 11]
c = [a, b]
d = [a; b]
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
10 12 23
14 8 6
27 8 9
b=
12 31 45
8 0 -9
45 2 11
c=
10 12 23 12 31 45
14 8 6 8 0 -9
27 8 9 45 2 11

d=

18
10 12 23
14 8 6
27 8 9
12 31 45
8 0 -9
45 2 11

 MATLAB - Perkalian Matriks


Perhatikan dua buah matriks A dan B. Jika A adalah matriks mxn dan B adalah matriks nxp,
keduanya dapat dikalikan bersama-sama untuk menghasilkan matriks mxn C. Perkalian
matriks hanya mungkin dilakukan jika jumlah kolom n pada A sama dengan bilangan
tersebut dari baris n di B.
Dalam perkalian matriks, elemen baris pada matriks pertama dikalikan dengan kolom yang
sesuai pada matriks kedua.
Setiap elemen pada posisi (i, j) th , dalam matriks C yang dihasilkan, adalah penjumlahan dari
hasil kali elemen pada baris ke- i matriks pertama dengan elemen yang sesuai
di kolom ke- j dari matriks kedua.
Perkalian matriks dalam MATLAB dilakukan dengan menggunakan operator *.
Contoh
Buat file skrip dengan kode berikut -
a = [ 1 2 3; 2 3 4; 1 2 5]
b = [ 2 1 3 ; 5 0 -2; 2 3 -1]
prod = a * b
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
1 2 3
2 3 4
1 2 5

b=

19
2 1 3
5 0 -2
2 3 -1
prod =
18 10 -4
27 14 -4
22 16 -6

 MATLAB - Determinan Matriks


Determinan matriks dihitung menggunakan fungsi det dari MATLAB. Determinan dari
matriks A diberikan oleh det (A).
Contoh
Buat file skrip dengan kode berikut -
a = [ 1 2 3; 2 3 4; 1 2 5]
det(a)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
1 2 3
2 3 4
1 2 5
ans = -2

 MATLAB - Invers dari Matriks


Invers dari matriks A dilambangkan dengan A −1 sehingga hubungan berikut ini berlaku -
AA−1 = A−1A = 1
Kebalikan dari matriks tidak selalu ada. Jika determinan matriksnya nol, maka inversnya
tidak ada dan matriksnya singular.
Pembalikan matriks dalam MATLAB dihitung menggunakan fungsi inv . Invers dari matriks
A diberikan oleh inv (A).
Contoh

20
Buat file script dan ketik kode berikut -
Demo Langsung
a = [ 1 2 3; 2 3 4; 1 2 5]
inv(a)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
1 2 3
2 3 4
1 2 5
ans =
-3.5000 2.0000 0.5000
3.0000 -1.0000 -1.0000
-0.5000 0 0.5000

 MATLAB - Arrays
Semua variabel dari semua tipe data di MATLAB adalah array multidimensi. Vektor adalah
larik satu dimensi dan matriks adalah larik dua dimensi.
Kita telah membahas vektor dan matriks. Pada bab ini, kita akan membahas array
multidimensi. Namun, sebelum itu, mari kita bahas beberapa tipe array khusus.

Array Khusus di MATLAB


Pada bagian ini, kita akan membahas beberapa fungsi yang membuat beberapa array
khusus. Untuk semua fungsi ini, satu argumen membuat array persegi, argumen ganda
membuat array persegi panjang.
Fungsi nol () membuat larik semua nol -

21
Misalnya -
zeros(5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Fungsi ones () membuat array dari semua orang -
Misalnya -
ones(4,3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1 1 1
1 1 1
1 1 1
1 1 1
Fungsi eye () membuat matriks identitas.
Misalnya -
eye(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Fungsi rand () membuat array bilangan acak terdistribusi seragam pada (0,1) -
Misalnya -

22
rand(3, 5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
0.8147 0.9134 0.2785 0.9649 0.9572
0.9058 0.6324 0.5469 0.1576 0.4854
0.1270 0.0975 0.9575 0.9706 0.8003

 Kotak Ajaib
Kotak ajaib adalah bujur sangkar yang menghasilkan jumlah yang sama, jika elemennya
ditambahkan berdasarkan baris, kolom atau diagonal.
Fungsi magic () membuat array persegi ajaib. Dibutuhkan argumen tunggal yang
memberikan ukuran persegi. Argumennya harus skalar lebih besar dari atau sama dengan 3.
magic(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

 Array Multidimensi
Array yang memiliki lebih dari dua dimensi disebut array multidimensi di MATLAB. Array
multidimensi dalam MATLAB merupakan perpanjangan dari matriks dua dimensi normal.
Umumnya untuk menghasilkan array multidimensi, pertama-tama kita membuat array dua
dimensi dan memperluasnya.
Misalnya, mari buat array dua dimensi a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a= 7 9 5
6 1 9
4 3 2
23
Larik a adalah larik 3-kali-3; kita dapat menambahkan dimensi ketiga ke a , dengan
memberikan nilai seperti -
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
a=
ans(:,:,1) =
0 0 0
0 0 0
0 0 0

ans(:,:,2) =
1 2 3
4 5 6
7 8 9
Kita juga bisa membuat array multidimensi menggunakan fungsi ones (), zeros () atau rand ().
Sebagai contoh,
b = rand(4,3,2)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
b(:,:,1) =
0.0344 0.7952 0.6463
0.4387 0.1869 0.7094
0.3816 0.4898 0.7547
0.7655 0.4456 0.2760

b(:,:,2) =
0.6797 0.4984 0.2238
0.6551 0.9597 0.7513
0.1626 0.3404 0.2551
0.1190 0.5853 0.5060

24
Kita juga bisa menggunakan fungsi cat () untuk membangun array multidimensi. Ini
menggabungkan daftar array di sepanjang dimensi yang ditentukan -
Sintaks untuk fungsi cat () adalah -
B = cat(dim, A1, A2...)
Dimana,

 B adalah larik baru yang dibuat

 A1 , A2 , ... adalah array yang akan digabungkan

 redup adalah dimensi yang digunakan untuk menggabungkan array

Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
Saat Anda menjalankan file, ini akan menampilkan -
c(:,:,1) =
9 8 7
6 5 4
3 2 1
c(:,:,2) =
1 2 3
4 5 6
7 8 9
c(:,:,3) =
2 3 1
4 7 8
3 9 0

25
Fungsi Array
MATLAB menyediakan fungsi berikut untuk mengurutkan, memutar, mengubah,
membentuk kembali, atau menggeser konten array.

Function Purpose

length Length of vector or largest array dimension

ndims Number of array dimensions

numel Number of array elements

size Array dimensions

iscolumn Determines whether input is column vector

isempty Determines whether array is empty

ismatrix Determines whether input is matrix

isrow Determines whether input is row vector

isscalar Determines whether input is scalar

isvector Determines whether input is vector

blkdiag Constructs block diagonal matrix from input arguments

circshift Shifts array circularly

ctranspose Complex conjugate transpose

diag Diagonal matrices and diagonals of matrix

flipdim Flips array along specified dimension

fliplr Flips matrix from left to right

flipud Flips matrix up to down

26
ipermute Inverses permute dimensions of N-D array

permute Rearranges dimensions of N-D array

repmat Replicates and tile array

reshape Reshapes array

rot90 Rotates matrix 90 degrees

shiftdim Shifts dimensions

issorted Determines whether set elements are in sorted order

sort Sorts array elements in ascending or descending order

sortrows Sorts rows in ascending order

squeeze Removes singleton dimensions

transpose Transpose

vectorize Vectorizes expression

27
Fungsi Tujuan

panjangnya Panjang vektor atau dimensi larik terbesar

ndims Jumlah dimensi array

beri nama Jumlah elemen array

ukuran Dimensi array

iscolumn Menentukan apakah masukan adalah vektor kolom

kosong Menentukan apakah array kosong

ismatriks Menentukan apakah masukan adalah matriks

isrow Menentukan apakah masukan adalah vektor baris

isscalar.dll Menentukan apakah masukan adalah skalar

isvector Menentukan apakah masukan adalah vektor

blkdiag.dll Membangun matriks diagonal blok dari argumen input

perpindahan tempat Menggeser array secara melingkar

ctranspose Transpos konjugat kompleks

diag Matriks diagonal dan diagonal matriks

flipdim Membalik larik sepanjang dimensi yang ditentukan

fliplr Membalik matriks dari kiri ke kanan

membalik Membalik matriks ke atas ke bawah

hypermute Membalikkan dimensi permute dari array ND

barter Mengatur ulang dimensi larik ND

28
repmat Replikasi dan susunan petak

membentuk kembali Membentuk ulang larik

membusuk90 Memutar matriks 90 derajat

Saya melompat Menggeser dimensi

disortir Menentukan apakah elemen set dalam urutan yang diurutkan

menyortir Mengurutkan elemen array dalam urutan naik atau turun

sortrows Mengurutkan baris dalam urutan menaik

meremas Menghapus dimensi tunggal

mengubah urutan Mengubah urutan

melakukan vektorisasi Vektorisasi ekspresi

Contoh
Contoh berikut menggambarkan beberapa fungsi yang disebutkan di atas.
Panjang, Dimensi dan Jumlah elemen -
Buat file skrip dan ketikkan kode berikut ke dalamnya -
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % length of x vector
y = rand(3, 4, 5, 2);
ndims(y) % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % no of elements in s
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans = 8
ans = 4
ans = 23
Pergeseran Melingkar dari Elemen Array -
29
Buat file skrip dan ketikkan kode berikut ke dalamnya -
a = [1 2 3; 4 5 6; 7 8 9] % the original array a
b = circshift(a,1) % circular shift first dimension values down by 1.
c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1
% and second dimension values to the left % by 1.
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
1 2 3
4 5 6
7 8 9

b=
7 8 9
1 2 3
4 5 6

c=
8 9 7
2 3 1
5 6 4

30
Menyortir Array
Buat file skrip dan ketikkan kode berikut ke dalamnya -
v = [ 23 45 12 9 5 0 19 17] % horizontal vector
sort(v) % sorting v
m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array
sort(m, 1) % sorting m along the row
sort(m, 2) % sorting m along the column
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
v=
23 45 12 9 5 0 19 17
ans =
0 5 9 12 17 19 23 45
m=
2 6 4
5 3 9
2 0 1
ans =
2 0 1
2 3 4
5 6 9
ans =
2 4 6
3 5 9
0 1 2

31
Array Sel
Larik sel adalah larik sel yang diindeks di mana setiap sel dapat menyimpan larik dengan
dimensi dan tipe data yang berbeda.
Fungsi sel digunakan untuk membuat larik sel. Sintaks untuk fungsi sel adalah -
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)
Dimana,

 C adalah larik sel;

 dim adalah bilangan bulat skalar atau vektor bilangan bulat yang menentukan dimensi
larik sel C;

 dim1, ..., dimN adalah bilangan bulat skalar yang menentukan dimensi C;

 obj adalah Salah satu dari berikut -

o Array atau objek Java

o Array .NET berjenis System.String atau System.Object

Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
c=
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
[1,3] = Green
[2,3] = 3
[1,4] = Yellow
[2,4] = 4
32
[1,5] = White
[2,5] = 5
}
Mengakses Data dalam Array Sel
Ada dua cara untuk merujuk ke elemen array sel -

 Mengapit indeks dalam tanda kurung pertama (), untuk merujuk ke kumpulan sel

 Mengapit indeks dalam tanda kurung kurawal {}, untuk merujuk ke data di dalam sel
individu
Saat Anda mengapit indeks dalam tanda kurung pertama, ini merujuk ke kumpulan sel.
Indeks larik sel dalam tanda kurung mulus mengacu pada kumpulan sel.
Misalnya -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
{
[1,1] = Red
[2,1] = 1
[1,2] = Blue
[2,2] = 2
}
Anda juga dapat mengakses konten sel dengan mengindeks dengan tanda kurung kurawal.
Misalnya -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = Blue
ans = Green
ans = Yellow

33
MATLAB - Colon Notation
Titik dua (:) adalah salah satu operator paling berguna di MATLAB. Ini digunakan untuk
membuat vektor, array subskrip, dan menentukan iterasi .
Jika Anda ingin membuat vektor baris, yang berisi bilangan bulat dari 1 hingga 10, Anda
menulis -
1:10
MATLAB mengeksekusi pernyataan dan mengembalikan vektor baris yang berisi bilangan
bulat dari 1 hingga 10 -
ans =

1 2 3 4 5 6 7 8 9 10
Jika Anda ingin menentukan nilai kenaikan selain dari satu, misalnya -
Demo Langsung
100: -5: 50
MATLAB menjalankan pernyataan dan mengembalikan hasil berikut -
ans =
100 95 90 85 80 75 70 65 60 55 50
Mari kita ambil contoh lain -
0:pi/8:pi
MATLAB menjalankan pernyataan dan mengembalikan hasil berikut -
ans =
Columns 1 through 7
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562
Columns 8 through 9
2.7489 3.1416
Anda dapat menggunakan operator titik dua untuk membuat vektor indeks untuk memilih
baris, kolom, atau elemen array.

34
Tabel berikut menjelaskan penggunaannya untuk tujuan ini (mari kita memiliki matriks A) -

Format Tujuan

A (:, j) adalah kolom ke-j dari A.

A (i, :) adalah baris ke-i dari A.

SEBUAH(:,: adalah larik dua dimensi yang setara. Untuk matriks, nilainya sama dengan A.
)

A (j: k) adalah A (j), A (j + 1), ..., A (k).

A (:, j: k) adalah A (:, j), A (:, j + 1), ..., A (:, k).

A (:,:, k) adalah halaman ke- k dari larik tiga dimensi A.

A (i, j, k, :) adalah vektor dalam larik empat dimensi A. Vektor tersebut meliputi A (i, j, k, 1),
A (i, j, k, 2), A (i, j, k, 3), dan seterusnya.

SEBUAH(:) adalah semua elemen A, dianggap sebagai satu kolom. Di sisi kiri pernyataan tugas,
A (:) mengisi A, mempertahankan bentuknya dari sebelumnya. Dalam hal ini, sisi
kanan harus mengandung jumlah elemen yang sama dengan A.

Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
A = [1 2 3 4; 4 5 6 7; 7 8 9 10]
A(:,2) % second column of A
A(:,2:3) % second and third column of A
A(2:3,2:3) % second and third rows and second and third columns
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
A=
1 2 3 4
4 5 6 7
7 8 9 10

35
ans =
2
5
8

ans =
2 3
5 6
8 9

ans =
5 6
8 9

MATLAB - Numbers
MATLAB mendukung berbagai kelas numerik yang mencakup bilangan bulat bertanda dan
tidak bertanda tangan serta bilangan floating-point presisi tunggal dan ganda. Secara default,
MATLAB menyimpan semua nilai numerik sebagai angka floating point presisi ganda.
Anda dapat memilih untuk menyimpan angka atau deretan angka apa pun sebagai bilangan
bulat atau sebagai angka presisi tunggal.
Semua tipe numerik mendukung operasi array dasar dan operasi matematika.
Konversi ke Berbagai Jenis Data Numerik
MATLAB menyediakan fungsi berikut untuk mengonversi ke berbagai tipe data numerik -

Fungsi Tujuan

dua kali lipat Mengonversi ke angka presisi ganda

tunggal Mengonversi ke angka presisi tunggal

int8 Mengonversi menjadi bilangan bulat bertanda 8-bit

int16 Mengonversi menjadi bilangan bulat bertanda 16-bit

36
int32 Mengonversi menjadi bilangan bulat bertanda 32-bit

int64 Mengonversi menjadi bilangan bulat bertanda 64-bit

uint8 Mengonversi menjadi bilangan bulat tanpa tanda tangan 8-bit

uint16 Mengonversi menjadi integer 16-bit unsigned

uint32 Mengonversi menjadi integer 32-bit unsigned

uint64 Mengonversi menjadi 64-bit unsigned integer

Contoh
Buat file script dan ketik kode berikut -
x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
x=
39.900 26.025 47.100

x=
39.900 26.025 47.100

x=
38 23 45

x=

37
38 23 45

x=
38 23 45

x=
38 23 45
Contoh
Mari kita kembangkan contoh sebelumnya sedikit lagi. Buat file script dan ketik kode berikut
-
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
x=
38 23 45

x=
38 23 45

x=
{
[1,1] = 38
[1,2] = 23
[1,3] = 45
}

Integer Terkecil dan Terbesar

38
Fungsi intmax () dan intmin () mengembalikan nilai maksimum dan minimum yang dapat
direpresentasikan dengan semua jenis bilangan bulat.
Kedua fungsi tersebut menggunakan tipe data integer sebagai argumennya, misalnya, intmax
(int8) atau intmin (int64) dan mengembalikan nilai maksimum dan minimum yang dapat
Anda wakili dengan tipe data integer.
Contoh
Contoh berikut menggambarkan cara mendapatkan nilai bilangan bulat terkecil dan
terbesar. Buat file skrip dan tulis kode berikut di dalamnya -
% displaying the smallest and largest signed integer data
str = 'The range for int8 is:\n\t%d to %d ';
sprintf(str, intmin('int8'), intmax('int8'))

str = 'The range for int16 is:\n\t%d to %d ';


sprintf(str, intmin('int16'), intmax('int16'))

str = 'The range for int32 is:\n\t%d to %d ';


sprintf(str, intmin('int32'), intmax('int32'))

str = 'The range for int64 is:\n\t%d to %d ';


sprintf(str, intmin('int64'), intmax('int64'))

% displaying the smallest and largest unsigned integer data


str = 'The range for uint8 is:\n\t%d to %d ';
sprintf(str, intmin('uint8'), intmax('uint8'))

str = 'The range for uint16 is:\n\t%d to %d ';


sprintf(str, intmin('uint16'), intmax('uint16'))

str = 'The range for uint32 is:\n\t%d to %d ';


sprintf(str, intmin('uint32'), intmax('uint32'))
str = 'The range for uint64 is:\n\t%d to %d ';
39
sprintf(str, intmin('uint64'), intmax('uint64'))
Saat Anda menjalankan file, ini menunjukkan hasil sebagai berikut -
ans = The range for int8 is:
-128 to 127
ans = The range for int16 is:
-32768 to 32767
ans = The range for int32 is:
-2147483648 to 2147483647
ans = The range for int64 is:
0 to 0
ans = The range for uint8 is:
0 to 255
ans = The range for uint16 is:
0 to 65535
ans = The range for uint32 is:
0 to -1
ans = The range for uint64 is:
0 to 18446744073709551616

Angka Floating Point Terkecil dan Terbesar


Fungsi realmax () dan realmin () mengembalikan nilai maksimum dan minimum yang dapat
direpresentasikan dengan angka floating point.
Kedua fungsi saat dipanggil dengan argumen 'tunggal', mengembalikan nilai maksimum dan
minimum yang dapat Anda wakili dengan tipe data presisi tunggal dan saat dipanggil dengan
argumen 'ganda', kembalikan nilai maksimum dan minimum yang dapat Anda wakili. tipe
data presisi ganda.

40
Contoh
Contoh berikut mengilustrasikan cara mendapatkan bilangan floating point terkecil dan
terbesar. Buat file skrip dan tulis kode berikut di dalamnya -
% displaying the smallest and largest single-precision
% floating point number
str = 'The range for single is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
realmin('single'), realmax('single'))

% displaying the smallest and largest double-precision


% floating point number
str = 'The range for double is:\n\t%g to %g and\n\t %g to %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
realmin('double'), realmax('double'))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans = The range for single is:
-3.40282e+38 to -1.17549e-38 and
1.17549e-38 to 3.40282e+38
ans = The range for double is:
-1.79769e+308 to -2.22507e-308 and
2.22507e-308 to 1.79769e+308

41
MATLAB - Strings
Membuat string karakter cukup sederhana di MATLAB. Faktanya, kami telah
menggunakannya berkali-kali. Misalnya, Anda mengetik berikut ini di prompt perintah -
my_string = 'Tutorials Point'
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
my_string = Tutorials Point
MATLAB menganggap semua variabel sebagai array, dan string dianggap sebagai array
karakter. Mari kita gunakan perintah whos untuk memeriksa variabel yang dibuat di atas -
whos
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
Name Size Bytes Class Attributes
my_string 1x16 32 char
Menariknya, Anda dapat menggunakan fungsi konversi numerik
seperti uint8 atau uint16 untuk mengonversi karakter dalam string menjadi kode
numeriknya. Fungsi char mengubah vektor integer kembali ke karakter -
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
my_string = 'Tutorial''s Point';
str_ascii = uint8(my_string) % 8-bit ascii values
str_back_to_char= char(str_ascii)
str_16bit = uint16(my_string) % 16-bit ascii values
str_back_to_char = char(str_16bit)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
str_ascii =

84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116

str_back_to_char = Tutorial's Point


str_16bit =
84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116
str_back_to_char = Tutorial's Point
42
Array Karakter Persegi Panjang
String yang telah kita diskusikan sejauh ini adalah array karakter satu dimensi; Namun, kita
perlu menyimpan lebih dari itu. Kita perlu menyimpan lebih banyak data tekstual dimensi
dalam program kita. Ini dicapai dengan membuat array karakter persegi panjang.
Cara termudah untuk membuat larik karakter persegi panjang adalah dengan menggabungkan
dua atau lebih larik karakter satu dimensi, baik secara vertikal maupun horizontal sesuai
kebutuhan.
Anda dapat menggabungkan string secara vertikal dengan salah satu cara berikut -

 Menggunakan operator penggabungan MATLAB [] dan memisahkan setiap baris


dengan titik koma (;). Harap diperhatikan bahwa dalam metode ini setiap baris harus
mengandung jumlah karakter yang sama. Untuk string dengan panjang berbeda, Anda
harus mengisi karakter spasi sesuai kebutuhan.

 Menggunakan fungsi char . Jika string memiliki panjang yang berbeda, karakter


mengisi string yang lebih pendek dengan trailing blank sehingga setiap baris memiliki
jumlah karakter yang sama.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
doc_profile = ['Zara Ali '; ...
'Sr. Surgeon '; ...
'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', ...
'RN Tagore Cardiology Research Center')
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
doc_profile =
Zara Ali
Sr. Surgeon
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali
Sr. Surgeon
RN Tagore Cardiology Research Center

43
Anda dapat menggabungkan string secara horizontal dengan salah satu cara berikut -

 Menggunakan operator penggabungan MATLAB, [] dan memisahkan string input


dengan koma atau spasi. Metode ini mempertahankan spasi tambahan dalam larik
input.

 Menggunakan fungsi penggabungan string, strcat . Metode ini menghapus spasi


tambahan di input.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = [name ', ' position ', ' worksAt]
profile = strcat(name, ', ', position, ', ', worksAt)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center
profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
Menggabungkan String menjadi Array Sel
Dari diskusi kita sebelumnya, jelas bahwa menggabungkan string dengan panjang yang
berbeda bisa jadi merepotkan karena semua string dalam array harus memiliki panjang yang
sama. Kami telah menggunakan spasi kosong di akhir string untuk menyamakan panjangnya.
Namun, cara yang lebih efisien untuk menggabungkan string adalah dengan mengubah larik
yang dihasilkan menjadi larik sel.
Larik sel MATLAB dapat menampung berbagai ukuran dan jenis data dalam larik. Array sel
menyediakan cara yang lebih fleksibel untuk menyimpan string dengan panjang yang
bervariasi.
Fungsi selstr mengonversi larik karakter menjadi larik sel string.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
name = 'Zara Ali ';
position = 'Sr. Surgeon ';
worksAt = 'R N Tagore Cardiology Research Center';
profile = char(name, position, worksAt);
44
profile = cellstr(profile);
disp(profile)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
{
[1,1] = Zara Ali
[2,1] = Sr. Surgeon
[3,1] = R N Tagore Cardiology Research Center
}
Fungsi String di MATLAB
MATLAB menyediakan berbagai fungsi string yang membuat, menggabungkan, mengurai,
membandingkan, dan memanipulasi string.
Tabel berikut memberikan penjelasan singkat tentang fungsi string di MATLAB –

Fungsi Tujuan

Fungsi untuk menyimpan teks dalam larik karakter, menggabungkan larik karakter, dll.

kosong Buat string karakter kosong

cellstr Buat array sel string dari array karakter

arang Ubah menjadi array karakter (string)

iscellstr Tentukan apakah masukan adalah larik sel string

ischar Tentukan apakah item adalah larik karakter

sprintf Memformat data menjadi string

strcat Gabungkan string secara horizontal

strjoin Gabungkan string dalam array sel menjadi string tunggal

45
Berfungsi untuk mengidentifikasi bagian string, mencari dan mengganti substring

ischar Tentukan apakah item adalah larik karakter

isletter Elemen larik yang merupakan huruf abjad

isspace Elemen array yang merupakan karakter spasi

isstrprop Tentukan apakah string termasuk dalam kategori yang ditentukan

sscanf Membaca data yang diformat dari string

strfind Temukan satu string di dalam string lainnya

strrep Temukan dan ganti substring

strsplit.dll Pisahkan string pada pembatas yang ditentukan

strtok Bagian string yang dipilih

validatestring Periksa validitas string teks

symvar Tentukan variabel simbolik dalam ekspresi

regexp Cocokkan ekspresi reguler (peka huruf besar-kecil)

regexpi Cocok dengan ekspresi reguler (tidak peka huruf besar / kecil)

regexprep Ganti string menggunakan ekspresi reguler

regexptranslate Terjemahkan string menjadi ekspresi reguler

Fungsi untuk perbandingan string

strcmp Bandingkan string (peka huruf besar-kecil)

strcmpi.dll Bandingkan string (tidak peka huruf besar / kecil)


46
strncmp.dll Bandingkan n karakter pertama dari string (case sensitive)

strncmpi.dll Bandingkan n karakter pertama dari string (case insensitive)

Berfungsi untuk mengubah string menjadi huruf besar atau kecil, membuat atau menghapus
spasi

deblank Hapus jejak kosong dari ujung string

strtrim Hapus spasi putih di depan dan di belakangnya dari string

menurunkan Ubah string menjadi huruf kecil

atas Ubah string menjadi huruf besar

strjust Ratakan larik karakter

Contoh
Contoh berikut menggambarkan beberapa fungsi string yang disebutkan di atas -
Memformat String
Buat file skrip dan ketikkan kode berikut ke dalamnya -
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans = 3141.592654
3141.59
+3141.59
3141.59
000003141.59
Bergabung dengan Strings
Buat file skrip dan ketikkan kode berikut ke dalamnya -

47
Demo Langsung
%cell array of strings
str_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single string
str1 = strjoin(str_array, "-")
str2 = strjoin(str_array, ",")
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
str1 = red-blue-green-yellow-orange
str2 = red,blue,green,yellow,orange
Menemukan dan Mengganti String
Buat file skrip dan ketikkan kode berikut ke dalamnya -
students = {'Zara Ali', 'Neha Bhatnagar', ...
'Monica Malik', 'Madhu Gautam', ...
'Madhu Sharma', 'Bhawna Sharma',...
'Nuha Ali', 'Reva Dutta', ...
'Sunaina Ali', 'Sofia Kabir'};
% The strrep function searches and replaces sub-string.
new_student = strrep(students(8), 'Reva', 'Poulomi')
% Display first names
first_names = strtok(students)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
new_student =
{
[1,1] = Poulomi Dutta
}
first_names =
{
[1,1] = Zara
[1,2] = Neha

48
[1,3] = Monica
[1,4] = Madhu
[1,5] = Madhu
[1,6] = Bhawna
[1,7] = Nuha
[1,8] = Reva
[1,9] = Sunaina
[1,10] = Sofia
}
Membandingkan String
Buat file skrip dan ketikkan kode berikut ke dalamnya -
str1 = 'This is test'
str2 = 'This is text'
if (strcmp(str1, str2))
sprintf('%s and %s are equal', str1, str2)
else
sprintf('%s and %s are not equal', str1, str2)
end
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
str1 = This is test
str2 = This is text
ans = This is test and This is text are not equal

MATLAB - Functions
Fungsi adalah sekelompok pernyataan yang bersama-sama melakukan tugas. Di MATLAB,
fungsi didefinisikan dalam file terpisah. Nama file dan fungsinya harus sama.
49
Fungsi beroperasi pada variabel dalam ruang kerja mereka sendiri, yang juga disebut ruang
kerja lokal , terpisah dari ruang kerja yang Anda akses pada prompt perintah MATLAB
yang disebut ruang kerja dasar .
Fungsi dapat menerima lebih dari satu argumen input dan dapat mengembalikan lebih dari
satu argumen output.
Sintaks dari pernyataan fungsi adalah -
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)
Contoh
Fungsi berikut bernama mymax harus ditulis dalam file bernama mymax.m . Dibutuhkan lima
angka sebagai argumen dan mengembalikan angka maksimum.
Buat file fungsi, bernama mymax.m dan ketik kode berikut di dalamnya -
function max = mymax(n1, n2, n3, n4, n5)
%This function calculates the maximum of the
% five numbers given as input
max = n1;
if(n2 > max)
max = n2;
end
if(n3 > max)
max = n3;
end
if(n4 > max)
max = n4;
end
if(n5 > max)
max = n5;
end
Baris pertama dari suatu fungsi dimulai dengan fungsi kata kunci . Ini memberi nama fungsi
dan urutan argumen. Dalam contoh kami, fungsi mymax memiliki lima argumen masukan dan
satu argumen keluaran.
Baris komentar yang muncul tepat setelah pernyataan fungsi menyediakan teks
bantuan. Garis-garis ini dicetak saat Anda mengetik -
50
help mymax
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
This function calculates the maximum of the
five numbers given as input
Anda dapat memanggil fungsi tersebut sebagai -
mymax(34, 78, 89, 23, 11)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 89

Fungsi Anonim
Fungsi anonim seperti fungsi inline dalam bahasa pemrograman tradisional, yang
didefinisikan dalam pernyataan MATLAB tunggal. Ini terdiri dari ekspresi MATLAB
tunggal dan sejumlah argumen input dan output.
Anda dapat menentukan fungsi anonim tepat di baris perintah MATLAB atau di dalam fungsi
atau skrip.
Dengan cara ini Anda dapat membuat fungsi sederhana tanpa harus membuat file untuk
mereka.
Sintaks untuk membuat fungsi anonim dari ekspresi adalah
f = @(arglist)expression
Contoh
Dalam contoh ini, kita akan menulis fungsi anonim bernama power, yang akan mengambil
dua angka sebagai input dan mengembalikan angka pertama yang dipangkatkan dari angka
kedua.
Buat file skrip dan ketik kode berikut di dalamnya -
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)
Saat Anda menjalankan file, ini akan menampilkan -
result1 = 343

51
result2 = 7
result3 = 1.0000e-10
result4 = 9.5459

Utama dan Sub-Fungsi


Fungsi apa pun selain fungsi anonim harus ditentukan di dalam file. Setiap file fungsi berisi
fungsi utama wajib yang muncul pertama kali dan sejumlah subfungsi opsional yang muncul
setelah fungsi utama dan digunakan olehnya.
Fungsi utama dapat dipanggil dari luar file yang mendefinisikannya, baik dari baris perintah
atau dari fungsi lain, tetapi subfungsi tidak dapat dipanggil dari baris perintah atau fungsi
lain, di luar file fungsi.
Sub-fungsi hanya dapat dilihat oleh fungsi utama dan sub-fungsi lain di dalam file fungsi
yang mendefinisikannya.
Contoh
Mari kita tulis sebuah fungsi bernama kuadrat yang akan menghitung akar dari persamaan
kuadrat. Fungsi tersebut akan mengambil tiga masukan, koefisien kuadratik, koefisien linier
dan suku konstanta. Itu akan mengembalikan akarnya.
File fungsi kuadrat.m akan berisi kuadrat fungsi utama dan disk sub-fungsi , yang
menghitung diskriminan.
Buat file fungsi quadratic.m dan ketik kode berikut di dalamnya -
function [x1,x2] = quadratic(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the
%constant term
% It returns the roots
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic
function dis = disc(a,b,c)

52
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
Anda dapat memanggil fungsi di atas dari command prompt sebagai -
quadratic(2,4,-4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 0.7321

Fungsi Bersarang
Anda dapat menentukan fungsi di dalam tubuh fungsi lain. Ini disebut fungsi
bertingkat. Fungsi bertingkat berisi salah satu atau semua komponen fungsi lainnya.
Fungsi bersarang didefinisikan dalam cakupan fungsi lain dan berbagi akses ke ruang kerja
fungsi yang memuatnya.
Fungsi bertingkat mengikuti sintaks berikut -
function x = A(p1, p2)
...
B(p2)
function y = B(p3)
...
end
...
end
Contoh
Mari kita tulis ulang fungsi kuadrat , dari contoh sebelumnya, namun kali ini fungsi disk
akan menjadi fungsi bersarang.
Buat file fungsi quadratic2.m dan ketik kode berikut di dalamnya -
function [x1,x2] = quadratic2(a,b,c)
function disc % nested function
d = sqrt(b^2 - 4*a*c);
end % end of function disc

53
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of function quadratic2
Anda dapat memanggil fungsi di atas dari command prompt sebagai -
quadratic2(2,4,-4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 0.73205

Fungsi Pribadi
Fungsi privat adalah fungsi utama yang hanya dapat dilihat oleh grup terbatas dari fungsi
lainnya. Jika Anda tidak ingin mengekspos implementasi suatu fungsi, Anda dapat
membuatnya sebagai fungsi privat.
Fungsi privat berada di subfolder dengan nama khusus privat .
Mereka hanya terlihat untuk fungsi-fungsi di folder induk.
Contoh
Mari kita tulis ulang fungsi kuadratnya . Kali ini, bagaimanapun, fungsi disk
yang menghitung diskriminan, akan menjadi fungsi pribadi.
Buat subfolder bernama private di direktori kerja. Simpan file fungsi disc.m berikut di
dalamnya -
function dis = disc(a,b,c)
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end % end of sub-function
Buat fungsi quadratic3.m di direktori kerja Anda dan ketik kode berikut di dalamnya -
function [x1,x2] = quadratic3(a,b,c)
%this function returns the roots of
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the
54
%constant term
% It returns the roots
d = disc(a,b,c);

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end % end of quadratic3
Anda dapat memanggil fungsi di atas dari command prompt sebagai -
quadratic3(2,4,-4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans = 0.73205

Variabel Global
Variabel global dapat dibagi oleh lebih dari satu fungsi. Untuk ini, Anda perlu
mendeklarasikan variabel sebagai global di semua fungsi.
Jika Anda ingin mengakses variabel tersebut dari ruang kerja dasar, maka deklarasikan
variabel tersebut di baris perintah.
Deklarasi global harus terjadi sebelum variabel benar-benar digunakan dalam suatu
fungsi. Merupakan praktik yang baik untuk menggunakan huruf kapital untuk nama variabel
global untuk membedakannya dari variabel lain.
Contoh
Mari kita buat file fungsi bernama average.m dan ketik kode berikut di dalamnya -
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end
Buat file skrip dan ketik kode berikut di dalamnya -
global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)
55
Saat Anda menjalankan file, itu akan menampilkan hasil berikut -
av = 35.500

MATLAB - Data Import


Mengimpor data di MATLAB berarti memuat data dari file
eksternal. Fungsi importdata memungkinkan memuat berbagai file data dengan format
berbeda. Ini memiliki lima bentuk berikut -

Sr.No Deskripsi fungsi


.

1 A = importdata (nama file)


Memuat data ke dalam larik A dari file yang dilambangkan dengan nama file .

2 A = importdata ('- pastespecial')


Memuat data dari papan klip sistem, bukan dari file.

3 A = importdata (___, delimiterIn)


Menafsirkan delimiterIn sebagai pemisah kolom dalam file ASCII, nama file, atau data
clipboard. Anda dapat menggunakan delimiterIn dengan salah satu argumen input dalam
sintaks di atas.

4 A = importdata (___, delimiterIn, headerlinesIn)


Memuat data dari file ASCII, nama file, atau clipboard, membaca data numerik mulai dari
baris headerlinesIn + 1 .

5 [A, delimiterOut, headerlinesOut] = importdata (___)


Mengembalikan karakter pembatas yang terdeteksi untuk file ASCII masukan
di delimiterOut dan jumlah baris header yang terdeteksi di headerlinesOut , menggunakan
salah satu argumen masukan dalam sintaks sebelumnya.

Secara default, Octave tidak memiliki dukungan untuk fungsi importdata () , jadi Anda harus
mencari dan menginstal paket ini untuk membuat contoh berikut bekerja dengan instalasi
Octave Anda.

Contoh 1

56
Mari kita memuat dan menampilkan file gambar. Buat file skrip dan ketik kode berikut di
dalamnya -
filename = 'smile.jpg';
A = importdata(filename);
image(A);
Saat Anda menjalankan file, MATLAB menampilkan file gambar. Namun, Anda harus
menyimpannya di direktori saat ini.

Contoh 2
Dalam contoh ini, kami mengimpor file teks dan menentukan Pemisah dan Judul
Kolom. Mari kita buat file ASCII yang dipisahkan spasi dengan tajuk kolom,
bernama mingguandata.txt .
File teks kami Weeklydata.txt terlihat seperti ini -
SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay
95.01 76.21 61.54 40.57 55.79 70.28 81.53
73.11 45.65 79.19 93.55 75.29 69.87 74.68
60.68 41.85 92.18 91.69 81.32 90.38 74.51
48.60 82.14 73.82 41.03 0.99 67.22 93.18
89.13 44.47 57.63 89.36 13.89 19.88 46.60
Buat file skrip dan ketik kode berikut di dalamnya -
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;

57
A = importdata(filename,delimiterIn,headerlinesIn);

% View data
for k = [1:7]
disp(A.colheaders{1, k})
disp(A.data(:, k))
disp(' ')
end
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
SunDay
95.0100
73.1100
60.6800
48.6000
89.1300

MonDay
76.2100
45.6500
41.8500
82.1400
44.4700

TuesDay
61.5400
79.1900
92.1800
73.8200
57.6300

58
WednesDay
40.5700
93.5500
91.6900
41.0300
89.3600

ThursDay
55.7900
75.2900
81.3200
0.9900
13.8900

FriDay
70.2800
69.8700
90.3800
67.2200
19.8800

SaturDay
81.5300
74.6800
74.5100
93.1800
46.6000

59
Contoh 3
Dalam contoh ini, mari kita mengimpor data dari clipboard.
Salin baris berikut ke clipboard -
Matematika itu sederhana
Buat file script dan ketik kode berikut -
A = importdata('-pastespecial')
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
A=
'Mathematics is simple'

I / O File Tingkat Rendah


Fungsi importdata adalah fungsi tingkat tinggi. Fungsi I / O file tingkat rendah di MATLAB
memungkinkan kontrol paling besar atas membaca atau menulis data ke file. Namun, fungsi
ini memerlukan informasi yang lebih detail tentang file Anda agar berfungsi secara efisien.
MATLAB menyediakan fungsi berikut untuk operasi baca dan tulis pada tingkat byte atau
karakter -

Fungsi Deskripsi

fclose Tutup satu atau semua file yang terbuka

feof Uji akhir file

ferror Informasi tentang kesalahan I / O file

fgetl Baca baris dari file, hapus karakter baris baru

gadget Baca baris dari file, pertahankan karakter baris baru

pesolek Buka file, atau dapatkan informasi tentang file yang terbuka

fprintf Tulis data ke file teks

ketakutan Membaca data dari file biner

frewind Pindahkan indikator posisi file ke awal file yang terbuka

60
fscanf.dll Membaca data dari file teks

fseek Pindah ke posisi yang ditentukan dalam file

ftell Posisi dalam file terbuka

fwrite Tulis data ke file biner

Impor File Data Teks dengan I / O Tingkat Rendah


MATLAB menyediakan fungsi berikut untuk impor file data teks tingkat rendah -

 Fungsi fscanf membaca data yang diformat dalam file teks atau ASCII.

 Fungsi fgetl dan fgets membaca satu baris file pada satu waktu, di mana karakter


baris baru memisahkan setiap baris.

 Fungsi fread membaca aliran data pada tingkat byte atau bit.

Contoh
Kami memiliki file data teks 'myfile.txt' yang disimpan di direktori kerja kami. File tersebut
menyimpan data curah hujan selama tiga bulan; Juni, Juli dan Agustus untuk tahun 2012.
Data di myfile.txt berisi rangkaian pengukuran waktu, bulan, dan curah hujan yang berulang
di lima tempat. Data header menyimpan jumlah bulan M; jadi kami memiliki M set
pengukuran.
File tersebut terlihat seperti ini -
Rainfall Data
Months: June, July, August

M=3
12:00:00
June-2012
17.21 28.52 39.78 16.55 23.67
19.15 0.35 17.57 NaN 12.01
17.92 28.49 17.40 17.06 11.09
9.59 9.33 NaN 0.31 0.23

61
10.46 13.17 NaN 14.89 19.33
20.97 19.50 17.65 14.45 14.00
18.23 10.34 17.95 16.46 19.34
09:10:02

July-2012
12.76 16.94 14.38 11.86 16.89
20.46 23.17 NaN 24.89 19.33
30.97 49.50 47.65 24.45 34.00
18.23 30.34 27.95 16.46 19.34
30.46 33.17 NaN 34.89 29.33
30.97 49.50 47.65 24.45 34.00
28.67 30.34 27.95 36.46 29.34
15:03:40

August-2012
17.09 16.55 19.59 17.25 19.22
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
17.54 11.45 13.48 22.55 24.01
NaN 21.19 25.85 25.05 27.21
26.79 24.98 12.23 16.99 18.67
Kami akan mengimpor data dari file ini dan menampilkan data ini. Lakukan langkah-langkah
berikut -

 Buka file dengan fungsi fopen dan dapatkan pengenal file.

 Jelaskan data dalam file dengan penentu format , seperti ' % s ' untuk string, ' % d '
untuk integer, atau ' % f ' untuk bilangan floating-point.

 Untuk melewati karakter literal dalam file, sertakan dalam deskripsi format. Untuk
melewati bidang data, gunakan tanda bintang ('*') di penentu.

62
Misalnya, untuk membaca header dan mengembalikan nilai tunggal M, kita menulis -
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);

 Secara default, fscanf membaca data sesuai dengan deskripsi format kami sampai


tidak menemukan data yang cocok, atau mencapai akhir file. Di sini kita akan
menggunakan for loop untuk membaca 3 set data dan setiap kali akan membaca 7
baris dan 5 kolom.

 Kami akan membuat struktur bernama mydata di ruang kerja untuk menyimpan data
yang dibaca dari file. Struktur ini memiliki tiga bidang - waktu , bulan , dan susunan
data hujan .
Buat file skrip dan ketik kode berikut di dalamnya -
filename = '/data/myfile.txt';
rows = 7;
cols = 5;

% open the file


fid = fopen(filename);

% read the file headers, find M (number of months)


M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);

% read each set of measurements


for n = 1:M
mydata(n).time = fscanf(fid, '%s', 1);
mydata(n).month = fscanf(fid, '%s', 1);

% fscanf fills the array in column order,


% so transpose the results
mydata(n).raindata = ...
fscanf(fid, '%f', [rows, cols]);
end
for n = 1:M

63
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end

% close the file


fclose(fid);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
12:00:00
June-2012
17.2100 17.5700 11.0900 13.1700 14.4500
28.5200 NaN 9.5900 NaN 14.0000
39.7800 12.0100 9.3300 14.8900 18.2300
16.5500 17.9200 NaN 19.3300 10.3400
23.6700 28.4900 0.3100 20.9700 17.9500
19.1500 17.4000 0.2300 19.5000 16.4600
0.3500 17.0600 10.4600 17.6500 19.3400

09:10:02
July-2012
12.7600 NaN 34.0000 33.1700 24.4500
16.9400 24.8900 18.2300 NaN 34.0000
14.3800 19.3300 30.3400 34.8900 28.6700
11.8600 30.9700 27.9500 29.3300 30.3400
16.8900 49.5000 16.4600 30.9700 27.9500
20.4600 47.6500 19.3400 49.5000 36.4600
23.1700 24.4500 30.4600 47.6500 29.3400

15:03:40
August-2012

64
17.0900 13.4800 27.2100 11.4500 25.0500
16.5500 22.5500 26.7900 13.4800 27.2100
19.5900 24.0100 24.9800 22.5500 26.7900
17.2500 NaN 12.2300 24.0100 24.9800
19.2200 21.1900 16.9900 NaN 12.2300
17.5400 25.8500 18.6700 21.1900 16.9900
11.4500 25.0500 17.5400 25.8500 18.6700

MATLAB - Data Output


Ekspor data (atau keluaran) dalam MATLAB berarti menulis ke dalam file. MATLAB
memungkinkan Anda untuk menggunakan data Anda di aplikasi lain yang membaca file
ASCII. Untuk ini, MATLAB menyediakan beberapa opsi ekspor data.
Anda dapat membuat jenis file berikut -

 File data ASCII berbentuk persegi dan dipisahkan dari larik.

 File buku harian (atau log) penekanan tombol dan output teks yang dihasilkan.

 File ASCII khusus menggunakan fungsi tingkat rendah seperti fprintf.

 MEX-file untuk mengakses rutinitas C / C ++ atau Fortran Anda yang menulis ke


format file teks tertentu.
Selain itu, Anda juga dapat mengekspor data ke spreadsheet.
Ada dua cara untuk mengekspor larik numerik sebagai file data ASCII yang dipisahkan -

 Menggunakan fungsi save dan menentukan qualifier -ascii

 Menggunakan fungsi dlmwrite

Sintaks untuk menggunakan fungsi simpan adalah -


save my_data.out num_array -ascii
di mana, my_data.out adalah file data ASCII yang dipisahkan yang dibuat, num_array adalah
larik numerik dan −ascii adalah penspesifikasinya.
Sintaks untuk menggunakan fungsi dlmwrite adalah -
dlmwrite('my_data.out', num_array, 'dlm_char')
di mana, my_data.out adalah file data ASCII yang dipisahkan, num_array adalah array
numerik dan dlm_char adalah karakter pembatas.

65
Contoh
Contoh berikut menunjukkan konsep tersebut. Buat file script dan ketik kode berikut -
Demo Langsung
num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00
4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00
7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00

1234
4567
7890
Harap dicatat bahwa perintah save -ascii dan fungsi dlmwrite tidak bekerja dengan array sel
sebagai input. Untuk membuat file ASCII yang dipisahkan dari konten array sel, Anda bisa

 Baik, konversi larik sel menjadi matriks menggunakan fungsi cell2mat

 Atau ekspor array sel menggunakan fungsi I / O file tingkat rendah.

Jika Anda menggunakan fungsi simpan untuk menulis larik karakter ke file ASCII, itu


menulis ASCII yang setara dengan karakter ke file.
Misalnya, mari kita tulis kata 'halo' ke file -
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB menjalankan pernyataan di atas dan menampilkan hasil sebagai berikut. yang
merupakan karakter dari string 'hello' dalam format ASCII 8 digit.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02

66
Menulis ke File Diary
File buku harian adalah log aktivitas sesi MATLAB Anda. Fungsi buku harian membuat
salinan persis sesi Anda dalam file disk, tidak termasuk grafik.
Untuk mengaktifkan fungsi buku harian, ketik -
diary
Secara opsional, Anda dapat memberikan nama file log, misalnya -
diary logdata.out
Untuk mematikan fungsi buku harian -
diary off
Anda dapat membuka file buku harian di editor teks.
Mengekspor Data ke File Data Teks dengan I / O Tingkat Rendah
Sejauh ini, kami telah mengekspor array numerik. Namun, Anda mungkin perlu membuat file
teks lain, termasuk kombinasi data angka dan karakter, file keluaran non-persegi, atau file
dengan skema pengkodean non-ASCII. Untuk tujuan ini, MATLAB
menyediakan fungsi fprintf level rendah .
Seperti dalam aktivitas file I / O level rendah, sebelum mengekspor, Anda perlu membuka
atau membuat file dengan fungsi fopen dan mendapatkan pengenal file. Secara default, fopen
membuka file untuk akses hanya-baca. Anda harus menentukan izin untuk menulis atau
menambahkan, seperti 'w' atau 'a'.
Setelah memproses file tersebut, Anda harus menutupnya dengan fungsi fclose (fid) .
Contoh berikut menunjukkan konsep -
Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];

% open a file for writing


fid = fopen('logtable.txt', 'w');

67
% Table Header
fprintf(fid, 'Log Function\n\n');

% print values in column order


% two values appear on each row of the file
fprintf(fid, '%f %f\n', y);
fclose(fid);

% display the file created


type logtable.txt
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
Log Function

0.000000 -Inf
10.000000 2.302585
20.000000 2.995732
30.000000 3.401197
40.000000 3.688879
50.000000 3.912023
60.000000 4.094345
70.000000 4.248495
80.000000 4.382027
90.000000 4.499810
100.000000 4.605170

68
MATLAB - Plotting
Untuk memplot grafik suatu fungsi, Anda perlu mengambil langkah-langkah berikut -

 Tentukan x , dengan menetapkan rentang nilai untuk variabel x , yang fungsinya


akan diplot

 Definisikan fungsinya, y = f (x)

 Panggil perintah plot , sebagai plot (x, y)

Contoh berikut akan mendemonstrasikan konsep tersebut. Mari kita gambarkan fungsi


sederhana y = x untuk rentang nilai x dari 0 hingga 100, dengan kenaikan 5.
Buat file script dan ketik kode berikut -
x = [0:5:100];
y = x;
plot(x, y)
Saat Anda menjalankan file, MATLAB menampilkan plot berikut -

Mari kita ambil satu contoh lagi untuk memplot fungsi y = x 2 . Dalam contoh ini, kami akan
menggambar dua grafik dengan fungsi yang sama, tetapi untuk kedua kalinya, kami akan
mengurangi nilai kenaikan. Harap perhatikan bahwa saat kami menurunkan kenaikan, grafik
menjadi lebih mulus.
Buat file script dan ketik kode berikut -
x = [1 2 3 4 5 6 7 8 9 10];
x = [-100:20:100];
y = x.^2;
69
plot(x, y)
Saat Anda menjalankan file, MATLAB menampilkan plot berikut -

Ubah file kode sedikit, kurangi kenaikan menjadi 5 -


x = [-100:5:100];
y = x.^2;
plot(x, y)
MATLAB menggambar grafik yang lebih halus -

Menambahkan Judul, Label, Garis Kisi dan Skala pada Grafik


70
MATLAB memungkinkan Anda untuk menambahkan judul, label di sepanjang sumbu x dan
sumbu y, garis kisi dan juga untuk menyesuaikan sumbu untuk merapikan grafik.

 Perintah xlabel dan ylabel menghasilkan label di sepanjang sumbu x dan sumbu y.

 The Judul perintah memungkinkan Anda untuk menempatkan judul pada grafik.

 The kotak pada perintah memungkinkan Anda untuk menempatkan garis grid pada


grafik.

 Perintah axis equal memungkinkan pembuatan plot dengan faktor skala yang sama


dan spasi pada kedua sumbu.

 The axis persegi perintah menghasilkan plot persegi.

Contoh
Buat file script dan ketik kode berikut -
x = [0:0.01:10];
y = sin(x);
plot(x, y), xlabel('x'), ylabel('Sin(x)'), title('Sin(x) Graph'),
grid on, axis equal
MATLAB menghasilkan grafik berikut -

Menggambar Beberapa Fungsi pada Grafik yang Sama


Anda dapat menggambar beberapa grafik pada plot yang sama. Contoh berikut menunjukkan
konsep -

71
Contoh
Buat file script dan ketik kode berikut -
x = [0 : 0.01: 10];
y = sin(x);
g = cos(x);
plot(x, y, x, g, '.-'), legend('Sin(x)', 'Cos(x)')
MATLAB menghasilkan grafik berikut -

72
Mengatur Warna pada Grafik
MATLAB menyediakan delapan pilihan warna dasar untuk menggambar grafik. Tabel
berikut menunjukkan warna dan kodenya -

Kode Warna

di putih

untuk Hitam

b Biru

r Merah

c Cyan

g hijau

m Magenta

Y Kuning

Contoh
Mari kita gambar grafik dua polinomial

 f (x) = 3x 4 + 2x 3 + 7x 2 + 2x + 9 dan

 g (x) = 5x 3 + 9x + 2

Buat file script dan ketik kode berikut -


x = [-10 : 0.01: 10];
y = 3*x.^4 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')

73
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -

Mengatur Skala Sumbu


The axis perintah memungkinkan Anda untuk mengatur skala sumbu. Anda dapat
memberikan nilai minimum dan maksimum untuk sumbu x dan y menggunakan perintah
sumbu dengan cara berikut -
axis ( [xmin xmax ymin ymax] )
Contoh berikut menunjukkan ini -
Contoh
Buat file script dan ketik kode berikut -
x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -1 1])
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -

74
Menghasilkan Sub-Plot
Saat Anda membuat larik plot pada gambar yang sama, masing-masing plot ini disebut
subplot. The subplot Perintah ini digunakan untuk membuat subplot.
Sintaks untuk perintahnya adalah -
subplot(m, n, p)
di mana, m dan n adalah jumlah baris dan kolom dari larik plot dan p menentukan tempat
untuk meletakkan plot tertentu.
Setiap plot yang dibuat dengan perintah subplot dapat memiliki karakteristiknya masing-
masing. Contoh berikut menunjukkan konsep -
Contoh
Mari kita buat dua plot -
y = e −1,5x sin (10x)
y = e −2x sin (10x)
Buat file script dan ketik kode berikut -
x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,1)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,2)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])
Saat Anda menjalankan file, MATLAB menghasilkan grafik berikut -

75
MATLAB - Grafik
Bab ini akan terus mengeksplorasi kapabilitas plotting dan grafis MATLAB. Kami akan
membahas -

 Menggambar diagram batang

 Menggambar kontur

 Plot tiga dimensi

Menggambar Diagram Batang


The bar perintah menarik dua bar chart dimensi. Mari kita ambil contoh untuk
mendemonstrasikan idenya.
Contoh
Mari kita buat kelas imajiner dengan 10 siswa. Kita tahu persentase nilai yang diperoleh
siswa ini adalah 75, 58, 90, 87, 50, 85, 92, 75, 60 dan 95. Kita akan menggambar diagram
batang untuk data ini.
Buat file script dan ketik kode berikut -
x = [1:10];
y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];
bar(x,y), xlabel('Student'),ylabel('Score'),
title('First Sem:')
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan diagram batang berikut -

76
Menggambar Kontur
Garis kontur dari fungsi dua variabel adalah kurva di mana fungsi tersebut memiliki nilai
konstan. Garis kontur digunakan untuk membuat peta kontur dengan menggabungkan titik-
titik dengan ketinggian yang sama di atas permukaan tertentu, seperti permukaan laut rata-
rata.
MATLAB menyediakan fungsi kontur untuk menggambar peta kontur.
Contoh
Mari kita buat peta kontur yang menunjukkan garis kontur untuk fungsi yang diberikan g = f
(x, y). Fungsi ini memiliki dua variabel. Jadi, kita harus menghasilkan dua variabel
independen, yaitu dua kumpulan data x dan y. Ini dilakukan dengan
memanggil perintah meshgrid .
The meshgrid Perintah ini digunakan untuk menghasilkan matriks elemen yang memberikan
rentang lebih x dan y bersama dengan spesifikasi selisih dalam setiap kasus.
Mari kita plot fungsi kita g = f (x, y), di mana −5 ≤ x ≤ 5, −3 ≤ y ≤ 3. Mari kita ambil
kenaikan 0,1 untuk kedua nilai. Variabel ditetapkan sebagai -
[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);
Terakhir, kita perlu menetapkan fungsinya. Misalkan fungsi kita menjadi: x 2 + y 2
Buat file script dan ketik kode berikut -
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
contour(x,y,g) % call the contour function
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta kontur berikut -

77
Mari kita ubah sedikit kode untuk mempercantik peta
[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variables
g = x.^2 + y.^2; % our function
[C, h] = contour(x,y,g); % call the contour function
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta kontur berikut -

Plot Tiga Dimensi


Plot tiga dimensi pada dasarnya menampilkan permukaan yang ditentukan oleh fungsi dalam
dua variabel, g = f (x, y).
Seperti sebelumnya, untuk mendefinisikan g, pertama-tama kita membuat satu set (x, y) poin
di atas domain fungsi menggunakan perintah meshgrid . Selanjutnya, kami menetapkan
fungsinya sendiri. Akhirnya, kami menggunakan perintah surf untuk membuat plot
permukaan.
Contoh berikut menunjukkan konsep -
Contoh
Mari kita buat peta permukaan 3D untuk fungsi g = xe - (x 2 + y 2 )
Buat file script dan ketik kode berikut -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)

78
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta 3-D berikut -

Anda juga dapat menggunakan perintah mesh untuk menghasilkan permukaan tiga


dimensi. Namun, perintah surf menampilkan garis penghubung dan permukaan permukaan
dalam warna, sedangkan perintah mesh membuat permukaan wireframe dengan garis
berwarna yang menghubungkan titik-titik yang menentukan.

MATLAB - Aljabar
Sejauh ini, kita telah melihat bahwa semua contoh bekerja di MATLAB serta GNU-nya, atau
disebut Oktaf. Tetapi untuk menyelesaikan persamaan aljabar dasar, MATLAB dan Oktaf
sedikit berbeda, jadi kami akan mencoba untuk membahas MATLAB dan Oktaf dalam
bagian yang terpisah.
Kami juga akan membahas pemfaktoran dan penyederhanaan ekspresi aljabar.
Memecahkan Persamaan Aljabar Dasar di MATLAB
The memecahkan fungsi yang digunakan untuk memecahkan persamaan aljabar. Dalam
bentuknya yang paling sederhana, fungsi penyelesaian menggunakan persamaan yang diapit
tanda kutip sebagai argumen.
Misalnya, mari kita selesaikan x dalam persamaan x-5 = 0
solve('x-5=0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5
79
Anda juga dapat memanggil fungsi penyelesaian sebagai -
y = solve('x-5 = 0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
y=
5
Anda bahkan mungkin tidak memasukkan ruas kanan persamaan -
solve('x-5')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5
Jika persamaan melibatkan banyak simbol, MATLAB secara default mengasumsikan bahwa
Anda sedang menyelesaikan x, namun, fungsi penyelesaian memiliki bentuk lain -
solve(equation, variable)
di mana, Anda juga bisa menyebutkan variabelnya.
Sebagai contoh, mari kita selesaikan persamaan v - u - 3t 2 = 0, untuk v. Dalam kasus ini, kita
harus menulis -
solve('v-u-3*t^2=0', 'v')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
3*t^2 + u
Memecahkan Persamaan Aljabar Dasar dalam Oktaf
Fungsi akar digunakan untuk menyelesaikan persamaan aljabar dalam Oktaf dan Anda dapat
menulis contoh di atas sebagai berikut -
Misalnya, mari kita selesaikan x dalam persamaan x-5 = 0
roots([1, -5])
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
ans = 5
Anda juga dapat memanggil fungsi penyelesaian sebagai -
y = roots([1, -5])

80
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
y=5
Memecahkan Persamaan Kuadrat di MATLAB
Fungsi penyelesaian juga dapat menyelesaikan persamaan orde tinggi. Ini sering digunakan
untuk menyelesaikan persamaan kuadrat. Fungsi mengembalikan akar persamaan dalam
larik.
Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0. Buat file script dan
ketikkan kode berikut -
eq = 'x^2 -7*x + 12 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
The first root is:
3
The second root is:
4
Memecahkan Persamaan Kuadrat dalam Oktaf
Contoh berikut menyelesaikan persamaan kuadrat x 2 -7x +12 = 0 dalam Oktaf. Buat file
script dan ketik kode berikut -
s = roots([1, -7, 12]);

disp('The first root is: '), disp(s(1));


disp('The second root is: '), disp(s(2));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
The first root is:
4
The second root is:
3

81
Memecahkan Persamaan Orde Tinggi di MATLAB
Fungsi penyelesaian juga dapat menyelesaikan persamaan orde tinggi. Misalnya, mari kita
selesaikan persamaan kubik sebagai (x-3) 2 (x-7) = 0
solve('(x-3)^2*(x-7)=0')
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
3
3
7
Dalam kasus persamaan orde tinggi, akar panjang mengandung banyak suku. Anda bisa
mendapatkan nilai numerik dari akar tersebut dengan mengubahnya menjadi dua kali
lipat. Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.
Buat file script dan ketik kode berikut -
eq = 'x^4 - 7*x^3 + 3*x^2 - 5*x + 9 = 0';
s = solve(eq);
disp('The first root is: '), disp(s(1));
disp('The second root is: '), disp(s(2));
disp('The third root is: '), disp(s(3));
disp('The fourth root is: '), disp(s(4));

% converting the roots to double type


disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
Saat Anda menjalankan file, ia mengembalikan hasil berikut -
The first root is:
6.630396332390718431485053218985
The second root is:

82
1.0597804633025896291682772499885
The third root is:
- 0.34508839784665403032666523448675 - 1.0778362954630176596831109269793*i
The fourth root is:
- 0.34508839784665403032666523448675 + 1.0778362954630176596831109269793*i
Numeric value of first root
6.6304
Numeric value of second root
1.0598
Numeric value of third root
-0.3451 - 1.0778i
Numeric value of fourth root
-0.3451 + 1.0778i
Harap dicatat bahwa dua akar terakhir adalah bilangan kompleks.
Memecahkan Persamaan Orde Tinggi dalam Oktaf
Contoh berikut menyelesaikan persamaan orde empat x 4 - 7x 3 + 3x 2 - 5x + 9 = 0.
Buat file script dan ketik kode berikut -
v = [1, -7, 3, -5, 9];
s = roots(v);

% converting the roots to double type


disp('Numeric value of first root'), disp(double(s(1)));
disp('Numeric value of second root'), disp(double(s(2)));
disp('Numeric value of third root'), disp(double(s(3)));
disp('Numeric value of fourth root'), disp(double(s(4)));
Saat Anda menjalankan file, ia mengembalikan hasil berikut -
Numeric value of first root
6.6304
Numeric value of second root

83
-0.34509 + 1.07784i
Numeric value of third root
-0.34509 - 1.07784i
Numeric value of fourth root
1.0598

Menyelesaikan Sistem Persamaan di MATLAB


Fungsi penyelesaian juga dapat digunakan untuk menghasilkan solusi sistem persamaan
yang melibatkan lebih dari satu variabel. Mari kita ambil contoh sederhana untuk
mendemonstrasikan penggunaan ini.
Mari kita selesaikan persamaan -
5x + 9y = 5
3x - 6y = 4
Buat file script dan ketik kode berikut -
s = solve('5*x + 9*y = 5','3*x - 6*y = 4');
s.x
s.y
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
22/19
ans =
-5/57
Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih
besar. Pertimbangkan kumpulan persamaan berikut -
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Menyelesaikan Sistem Persamaan dalam Oktaf
Kami memiliki pendekatan yang sedikit berbeda untuk menyelesaikan sistem persamaan
linier 'n' dalam 'n' yang tidak diketahui. Mari kita ambil contoh sederhana untuk
mendemonstrasikan penggunaan ini.

84
Mari kita selesaikan persamaan -
5x + 9y = 5
3x - 6y = 4
Sistem persamaan linier seperti itu dapat dituliskan sebagai persamaan matriks tunggal Ax =
b, di mana A adalah matriks koefisien, b adalah vektor kolom yang berisi ruas kanan
persamaan linier dan x adalah vektor kolom yang mewakili solusi sebagai ditampilkan pada
program di bawah ini -
Buat file script dan ketik kode berikut -
A = [5, 9; 3, -6];
b = [5;4];
A\b
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
1.157895
-0.087719
Dengan cara yang sama, Anda dapat menyelesaikan sistem linier yang lebih besar seperti
yang diberikan di bawah ini -
x + 3y -2z = 5
3x + 5y + 6z = 7
2x + 4y + 3z = 8
Memperluas dan Mengumpulkan Persamaan di MATLAB
Fungsi ekspansi dan kumpulkan masing-masing mengembang dan mengumpulkan
persamaan. Contoh berikut menunjukkan konsep -
Saat Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel
Anda adalah simbol.
Buat file script dan ketik kode berikut -
syms x %symbolic variable x
syms y %symbolic variable x
% expanding equations
expand((x-5)*(x+9))

85
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(sin(2*x))
expand(cos(x+y))

% collecting equations
collect(x^3 *(x-7))
collect(x^4*(x-3)*(x-5))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
x^2 + 4*x - 45
ans =
x^4 + x^3 - 43*x^2 + 23*x + 210
ans =
2*cos(x)*sin(x)
ans =
cos(x)*cos(y) - sin(x)*sin(y)
ans =
x^4 - 7*x^3
ans =
x^6 - 8*x^5 + 15*x^4

86
Memperluas dan Mengumpulkan Persamaan dalam Oktaf
Anda harus memiliki simbolis paket, yang menyediakan memperluas dan mengumpulkan
fungsi untuk memperluas dan mengumpulkan persamaan, masing-masing. Contoh berikut
menunjukkan konsep -
Saat Anda bekerja dengan banyak fungsi simbolik, Anda harus menyatakan bahwa variabel
Anda simbolis tetapi Oktaf memiliki pendekatan yang berbeda untuk mendefinisikan variabel
simbolik. Perhatikan penggunaan Sin dan Cos , yang juga didefinisikan dalam paket
simbolik.
Buat file script dan ketik kode berikut -
% first of all load the package, make sure its installed.
pkg load symbolic

% make symbols module available


symbols

% define symbolic variables


x = sym ('x');
y = sym ('y');
z = sym ('z');

% expanding equations
expand((x-5)*(x+9))
expand((x+2)*(x-3)*(x-5)*(x+7))
expand(Sin(2*x))
expand(Cos(x+y))

% collecting equations
collect(x^3 *(x-7), z)
collect(x^4*(x-3)*(x-5), z)

87
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
-45.0+x^2+(4.0)*x

ans =
210.0+x^4-(43.0)*x^2+x^3+(23.0)*x

ans =
sin((2.0)*x)

ans =
cos(y+x)

ans =
x^(3.0)*(-7.0+x)

ans =
(-3.0+x)*x^(4.0)*(-5.0+x)

Faktorisasi dan Penyederhanaan Ekspresi Aljabar


The Faktor Fungsi factorizes ekspresi dan menyederhanakan fungsi menyederhanakan
ekspresi. Contoh berikut menunjukkan konsep -
Contoh
Buat file script dan ketik kode berikut -
syms x
syms y
factor(x^3 - y^3)
factor([x^2-y^2,x^3+y^3])
simplify((x^4-16)/(x^2-4))
88
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
(x - y)*(x^2 + x*y + y^2)
ans =
[ (x - y)*(x + y), (x + y)*(x^2 - x*y + y^2)]
ans =
x^2 + 4

MATLAB - Kalkulus
MATLAB menyediakan berbagai cara untuk memecahkan masalah diferensial dan kalkulus
integral, menyelesaikan persamaan diferensial dari berbagai derajat dan perhitungan
batas. Yang terbaik dari semuanya, Anda dapat dengan mudah memplot grafik fungsi
kompleks dan memeriksa titik maksimum, minimum, dan alat tulis lainnya pada grafik
dengan menyelesaikan fungsi asli, serta turunannya.
Bab ini akan membahas masalah kalkulus. Dalam bab ini, kita akan membahas konsep pra-
kalkulus, yaitu menghitung batas fungsi dan memverifikasi sifat batas.
Dalam Diferensial bab berikutnya , kita akan menghitung turunan dari sebuah ekspresi dan
menemukan maksima dan minima lokal pada grafik. Kami juga akan membahas penyelesaian
persamaan diferensial.
Terakhir, pada bab Integrasi , kita akan membahas kalkulus integral.

Menghitung Batas
MATLAB menyediakan fungsi batas untuk menghitung batas. Dalam bentuknya yang paling
dasar, fungsi limit mengambil ekspresi sebagai argumen dan menemukan limit ekspresi
tersebut saat variabel independen bernilai nol.
Sebagai contoh, mari kita hitung limit dari sebuah fungsi f (x) = (x 3 + 5) / (x 4 + 7), karena x
cenderung nol.
syms x
limit((x^3 + 5)/(x^4 + 7))
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
5/7

89
Fungsi batas termasuk dalam bidang komputasi simbolik; Anda perlu
menggunakan fungsi syms untuk memberi tahu MATLAB variabel simbolis mana yang
Anda gunakan. Anda juga dapat menghitung batas suatu fungsi, karena variabel cenderung ke
beberapa angka selain nol. Untuk menghitung lim x-> a (f (x)), kami menggunakan perintah
limit dengan argumen. Yang pertama adalah ekspresi dan yang kedua adalah angka,
yang didekati x , ini dia a .
Sebagai contoh, mari kita hitung limit dari sebuah fungsi f (x) = (x-3) / (x-1), karena x
cenderung 1.
limit((x - 3)/(x-1),1)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
NaN
Mari kita ambil contoh lain,
limit(x^2 + 5, 3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil sebagai berikut -
ans =
14
Menghitung Batas menggunakan Oktaf
Berikut adalah contoh versi Oktaf di atas menggunakan paket simbolik , coba jalankan dan
bandingkan hasilnya -
pkg load symbolic
symbols

x = sym("x");
subs((x^3+5)/(x^4+7),x,0)
Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -
ans =
0.7142857142857142857

90
Verifikasi Sifat Dasar Batasan
Teorema Batas Aljabar memberikan beberapa sifat dasar batas. Ini adalah sebagai berikut -

Mari kita pertimbangkan dua fungsi -

 f (x) = (3x + 5) / (x - 3)

 g (x) = x 2 + 1.

Mari kita hitung batas fungsi karena x cenderung 5, dari kedua fungsi dan memverifikasi sifat
dasar batas menggunakan dua fungsi dan MATLAB ini.
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)
Saat Anda menjalankan file, ini akan menampilkan -
l1 =
17

l2 =
17

91
lAdd =
34

lSub =
0

lMult =
289

lDiv =
1

Verifikasi Properti Dasar Batas menggunakan Oktaf


Berikut adalah contoh versi Oktaf di atas menggunakan paket simbolik , coba jalankan dan
bandingkan hasilnya -
pkg load symbolic
symbols

x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;

l1 = subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)

Oktaf akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut -


92
l1 =
17.0
l2 =
17.0
lAdd =
34.0
lSub =
0.0
lMult =
289.0
lDiv =
1.0

Batas Sisi Kiri dan Kanan


Ketika suatu fungsi memiliki diskontinuitas untuk beberapa nilai variabel tertentu, batasnya
tidak ada pada titik itu. Dengan kata lain, limit dari suatu fungsi f (x) memiliki diskontinuitas
pada x = a, ketika nilai limit, ketika x mendekati x dari sisi kiri, tidak sama dengan nilai limit
ketika x mendekati dari sisi kanan.
Ini mengarah pada konsep batas tangan kiri dan tangan kanan. Batas tangan kiri didefinisikan
sebagai batas sebagai x -> a, dari kiri, yaitu x mendekati a, untuk nilai x <a. Batas tangan
kanan didefinisikan sebagai batas sebagai x -> a, dari kanan, yaitu x mendekati a, untuk nilai
x> a. Ketika batas tangan kiri dan batas tangan kanan tidak sama, batas itu tidak ada.
Mari kita pertimbangkan sebuah fungsi -
f (x) = (x - 3) / | x - 3 |
Kami akan menunjukkan bahwa lim x-> 3 f (x) tidak ada. MATLAB membantu kami
menetapkan fakta ini dengan dua cara -

 Dengan memplot grafik fungsi dan menunjukkan diskontinuitas.

 Dengan menghitung batas dan menunjukkan bahwa keduanya berbeda.

Batas tangan kiri dan tangan kanan dihitung dengan meneruskan string karakter 'left' dan
'right' ke perintah limit sebagai argumen terakhir.

Contoh
93
Buat file skrip dan ketikkan kode berikut ke dalamnya -
f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
Saat Anda menjalankan file, MATLAB menggambar plot berikut

Setelah output berikut ini ditampilkan -


l=
-1

r=
1

94
MATLAB - Differential
MATLAB menyediakan perintah diff untuk menghitung turunan simbolik. Dalam bentuknya
yang paling sederhana, Anda meneruskan fungsi yang ingin Anda bedakan ke perintah diff
sebagai argumen.
Sebagai contoh, mari kita hitung turunan dari fungsi f (t) = 3t 2 + 2t -2
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms t
f = 3*t^2 + 2*t^(-2);
diff(f)
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
ans =
6*t - 4/t^3
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

t = sym("t");
f = 3*t^2 + 2*t^(-2);
differentiate(f,t)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
ans =
-(4.0)*t^(-3.0)+(6.0)*t

95
Verifikasi Aturan Dasar Diferensiasi
Mari kita nyatakan secara singkat berbagai persamaan atau aturan untuk diferensiasi fungsi
dan verifikasi aturan ini. Untuk tujuan ini, kita akan menuliskan f '(x) untuk turunan orde
pertama dan f "(x) untuk turunan orde dua.
Berikut adalah aturan untuk diferensiasi -
Aturan 1
Untuk setiap fungsi f dan g dan bilangan real apa pun a dan b adalah turunan dari fungsi -
h (x) = af (x) + bg (x) terhadap x diberikan oleh -
h '(x) = f' (x) + bg '(x)
Aturan 2
Aturan penjumlahan dan pengurangan menyatakan bahwa jika f dan g adalah dua fungsi, f
'dan g' adalah turunannya masing-masing, maka,
( f + g) '= f' + g '
(f - g) '= f' - g '
Aturan 3
The produk aturan menyatakan bahwa jika f dan g adalah dua fungsi, f 'dan g' adalah turunan
mereka masing-masing, kemudian,
(fg) '= f'.g + g'.f
Aturan 4
The quotient aturan menyatakan bahwa jika f dan g adalah dua fungsi, f 'dan g' adalah
turunan mereka masing-masing, kemudian,
(f / g) '= (f'.g - g'.f) / g 2
Aturan 5
Aturan polinomial atau pangkat dasar menyatakan bahwa, jika y = f (x) = x n , maka f '=
n. x (n-1)
Hasil langsung dari aturan ini adalah turunan dari setiap konstanta adalah nol, yaitu, jika y =
k , setiap konstanta, maka
f '= 0
Aturan 6
The rantai aturan menyatakan bahwa, turunan dari fungsi fungsi h (x) = f (g (x)) terhadap x
adalah,
h '(x) = f' (g (x)). g '(x)

96
Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
syms t

f = (x + 2)*(x^2 + 3)
der1 = diff(f)

f = (t^2 + 3)*(sqrt(t) + t^3)


der2 = diff(f)

f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)


der3 = diff(f)

f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = diff(f)

f = (x^2 + 1)^17
der5 = diff(f)

f = (t^3 + 3* t^2 + 5*t -9)^(-6)


der6 = diff(f)
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
f=
(x^2 + 3)*(x + 2)

der1 =
2*x*(x + 2) + x^2 + 3

97
f=
(t^(1/2) + t^3)*(t^2 + 3)

der2 =
(t^2 + 3)*(3*t^2 + 1/(2*t^(1/2))) + 2*t*(t^(1/2) + t^3)

f=
(x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)

der3 =
(2*x - 2)*(3*x^3 - 5*x^2 + 2) - (- 9*x^2 + 10*x)*(x^2 - 2*x + 1)

f=
(2*x^2 + 3*x)/(x^3 + 1)

der4 =
(4*x + 3)/(x^3 + 1) - (3*x^2*(2*x^2 + 3*x))/(x^3 + 1)^2

f=
(x^2 + 1)^17

der5 =
34*x*(x^2 + 1)^16

f=
1/(t^3 + 3*t^2 + 5*t - 9)^6

der6 =
-(6*(3*t^2 + 6*t + 5))/(t^3 + 3*t^2 + 5*t - 9)^7

98
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

x = sym("x");
t = sym("t");

f = (x + 2)*(x^2 + 3)
der1 = differentiate(f,x)

f = (t^2 + 3)*(t^(1/2) + t^3)


der2 = differentiate(f,t)

f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2)


der3 = differentiate(f,x)

f = (2*x^2 + 3*x)/(x^3 + 1)
der4 = differentiate(f,x)

f = (x^2 + 1)^17
der5 = differentiate(f,x)

f = (t^3 + 3* t^2 + 5*t -9)^(-6)


der6 = differentiate(f,t)

Oktaf mengeksekusi kode dan mengembalikan hasil berikut -


f=
(2.0+x)*(3.0+x^(2.0))

99
der1 =
3.0+x^(2.0)+(2.0)*(2.0+x)*x

f=
(t^(3.0)+sqrt(t))*(3.0+t^(2.0))

der2 =
(2.0)*(t^(3.0)+sqrt(t))*t+((3.0)*t^(2.0)+(0.5)*t^(-0.5))*(3.0+t^(2.0))

f=
(1.0+x^(2.0)-(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))

der3 =
(-2.0+(2.0)*x)*(2.0-(5.0)*x^(2.0)+(3.0)*x^(3.0))+((9.0)*x^(2.0)-(10.0)*x)*(1.0+x^(2.0)-
(2.0)*x)

f=
(1.0+x^(3.0))^(-1)*((2.0)*x^(2.0)+(3.0)*x)

der4 =
(1.0+x^(3.0))^(-1)*(3.0+(4.0)*x)-(3.0)*(1.0+x^(3.0))^(-2)*x^(2.0)*((2.0)*x^(2.0)+(3.0)*x)

f=
(1.0+x^(2.0))^(17.0)

der5 =
(34.0)*(1.0+x^(2.0))^(16.0)*x

f=
100
(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-6.0)

der6 =
-(6.0)*(-9.0+(3.0)*t^(2.0)+t^(3.0)+(5.0)*t)^(-7.0)*(5.0+(3.0)*t^(2.0)+(6.0)*t)

Turunan dari Fungsi Eksponensial, Logaritmik dan Trigonometri


Tabel berikut menyediakan turunan dari fungsi eksponensial, logaritmik dan trigonometri
yang umum digunakan -

Fungsi Turunan

c a.x c a.x .ln ca (ln adalah logaritma natural)

e x e x

ln x 1/x

ln c x 1 / x.ln c

x x x x . (1 + ln x)

sin (x) cos (x)

cos (x) -sin (x)

jadi (x) sec 2 (x), atau 1 / cos 2 (x), atau 1 + tan 2 (x)

ranjang bayi (x) -csc 2 (x), atau -1 / sin 2 (x), atau - (1 + cot 2 (x))

dtk (x) dtk (x) .tan (x)

CSC (x) -csc (x) .cot (x)

Contoh
Buat file skrip dan ketikkan kode berikut ke dalamnya -

101
syms x
y = exp(x)
diff(y)

y = x^9
diff(y)

y = sin(x)
diff(y)

y = tan(x)
diff(y)

y = cos(x)
diff(y)

y = log(x)
diff(y)

y = log10(x)
diff(y)

y = sin(x)^2
diff(y)

y = cos(3*x^2 + 2*x + 1)
diff(y)

y = exp(x)/sin(x)

102
diff(y)
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
y=
exp(x)
ans =
exp(x)

y=
x^9
ans =
9*x^8

y=
sin(x)
ans =
cos(x)

y=
tan(x)
ans =
tan(x)^2 + 1

y=
cos(x)
ans =
-sin(x)

y=
log(x)

103
ans =
1/x

y=
log(x)/log(10)
ans =
1/(x*log(10))

y=
sin(x)^2
ans =
2*cos(x)*sin(x)

y=
cos(3*x^2 + 2*x + 1)
ans =
-sin(3*x^2 + 2*x + 1)*(6*x + 2)

y=
exp(x)/sin(x)
ans =
exp(x)/sin(x) - (exp(x)*cos(x))/sin(x)^2
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = Exp(x)
differentiate(y,x)
y = x^9

104
differentiate(y,x)
y = Sin(x)

differentiate(y,x)
y = Tan(x)

differentiate(y,x)
y = Cos(x)

differentiate(y,x)
y = Log(x)

differentiate(y,x)
% symbolic packages does not have this support
%y = Log10(x)
%differentiate(y,x)
y = Sin(x)^2

differentiate(y,x)
y = Cos(3*x^2 + 2*x + 1)

differentiate(y,x)
y = Exp(x)/Sin(x)

differentiate(y,x)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -

105
y=
exp(x)

ans =
exp(x)
y=
x^(9.0)

ans =
(9.0)*x^(8.0)

y=
sin(x)
ans =
cos(x)
y=
tan(x)
ans =
1+tan(x)^2
y=

cos(x)
ans =

-sin(x)
y=

log(x)
ans =

106
x^(-1)
y=

sin(x)^(2.0)
ans =

(2.0)*sin(x)*cos(x)
y=

cos(1.0+(2.0)*x+(3.0)*x^(2.0))
ans =

-(2.0+(6.0)*x)*sin(1.0+(2.0)*x+(3.0)*x^(2.0))
y=

sin(x)^(-1)*exp(x)
ans =

sin(x)^(-1)*exp(x)-sin(x)^(-2)*cos(x)*exp(x)

107
Menghitung Derivatif Tingkat Tinggi
Untuk menghitung turunan yang lebih tinggi dari suatu fungsi f, kita menggunakan
sintaksis diff (f, n) .
Mari kita hitung turunan kedua dari fungsi y = f (x) = x .e -3x
f = x*exp(-3*x);
diff(f, 2)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
9*x*exp(-3*x) - 6*exp(-3*x)
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

x = sym("x");
f = x*Exp(-3*x);
differentiate(f, x, 2)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
ans =
(9.0)*exp(-(3.0)*x)*x-(6.0)*exp(-(3.0)*x)

Contoh
Dalam contoh ini, mari kita pecahkan masalah. Diketahui bahwa fungsi y = f (x) = 3 sin (x) +
7 cos (5x) . Kita harus mencari tahu apakah persamaan f "+ f = -5cos (2x) benar.
Buat file skrip dan ketikkan kode berikut ke dalamnya -
syms x
y = 3*sin(x)+7*cos(5*x); % defining the function
lhs = diff(y,2)+y; %evaluting the lhs of the equation
rhs = -5*cos(2*x); %rhs of the equation
if(isequal(lhs,rhs))
disp('Yes, the equation holds true');

108
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
No, the equation does not hold true
Value of LHS is:
-168*cos(5*x)
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

x = sym("x");
y = 3*Sin(x)+7*Cos(5*x); % defining the function
lhs = differentiate(y, x, 2) + y; %evaluting the lhs of the equation
rhs = -5*Cos(2*x); %rhs of the equation

if(lhs == rhs)
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs);
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
No, the equation does not hold true
Value of LHS is:
-(168.0)*cos((5.0)*x)

109
Menemukan Maxima dan Minima dari sebuah Kurva
Jika kita mencari nilai maksimum dan minimum lokal untuk sebuah grafik, pada dasarnya
kita mencari titik tertinggi atau terendah pada grafik fungsi di lokasi tertentu, atau untuk
rentang nilai tertentu dari variabel simbolik.
Untuk fungsi y = f (x) titik-titik pada grafik yang memiliki kemiringan nol disebut titik-titik
diam . Dengan kata lain, titik-titik stasioner adalah di mana f '(x) = 0.
Untuk mencari titik stasioner dari suatu fungsi yang kita turunkan, kita perlu menetapkan
turunannya sama dengan nol dan menyelesaikan persamaannya.
Contoh
Mari kita cari titik-titik stasioner dari fungsi f (x) = 2x 3 + 3x 2 - 12x + 17
Lakukan langkah-langkah berikut -
Pertama mari kita masuk ke fungsi dan plot grafiknya.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y)
MATLAB menjalankan kode dan mengembalikan plot berikut -

110
Berikut adalah kode ekuivalen Oktaf untuk contoh di atas -
pkg load symbolic
symbols

x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");

ezplot(y)
print -deps graph.eps
Tujuan kita adalah untuk menemukan beberapa maksimum dan minimum lokal pada
grafik, jadi mari kita temukan maksimum dan minimum lokal untuk interval [-2, 2]
pada grafik.
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17; % defining the function
ezplot(y, [-2, 2])
MATLAB menjalankan kode dan mengembalikan plot berikut -

111
Berikut adalah kode ekuivalen Oktaf untuk contoh di atas -
pkg load symbolic
symbols

x = sym('x');
y = inline("2*x^3 + 3*x^2 - 12*x + 17");

ezplot(y, [-2, 2])


print -deps graph.eps
Selanjutnya, mari kita hitung turunannya.
g = diff(y)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
g=
6*x^2 + 6*x - 12
Berikut adalah Oktaf yang setara dari perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
g=
-12.0+(6.0)*x+(6.0)*x^(2.0)
Mari kita selesaikan fungsi turunannya, g, untuk mendapatkan nilai yang menjadi nol.
s = solve(g)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
s=
1
-2

112
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
roots([6, 6, -12])
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
g=

-12.0+(6.0)*x^(2.0)+(6.0)*x
ans =
-2
1

Ini sesuai dengan plot kami. Jadi mari kita evaluasi fungsi f pada titik kritis x = 1,
-2. Kita dapat mengganti nilai dalam fungsi simbolik dengan menggunakan perintah subs .
subs(y, 1), subs(y, -2)
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
10
ans =
37
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
y = 2*x^3 + 3*x^2 - 12*x + 17;
g = differentiate(y,x)
113
roots([6, 6, -12])
subs(y, x, 1), subs(y, x, -2)
ans =
10.0
ans =
37.0-4.6734207789940138748E-18*I
Oleh karena itu, nilai minimum dan maksimum pada fungsi f (x) = 2x 3 + 3x 2 - 12x + 17,
pada interval [-2,2] adalah 10 dan 37.
Memecahkan Persamaan Diferensial
MATLAB memberikan perintah dsolve untuk menyelesaikan persamaan diferensial secara
simbolis.
Bentuk paling dasar dari perintah dsolve untuk mencari solusi persamaan tunggal adalah
dsolve('eqn')
dimana eqn adalah string teks yang digunakan untuk memasukkan persamaan.
Ia mengembalikan solusi simbolis dengan satu set konstanta arbitrer yang MATLAB beri
label C1, C2, dan seterusnya.
Anda juga dapat menentukan kondisi awal dan batas untuk masalah tersebut, sebagai daftar
yang dipisahkan koma mengikuti persamaan sebagai -
dsolve('eqn','cond1', 'cond2',…)
Untuk tujuan menggunakan perintah dsolve, derivatif ditandai dengan D . Misalnya,
persamaan seperti f '(t) = -2 * f + biaya (t) dimasukkan sebagai -
'Df = -2 * f + cos (t)'
Turunan yang lebih tinggi ditunjukkan dengan mengikuti D dengan urutan turunannya.
Misalnya persamaan f "(x) + 2f '(x) = 5sin3x harus dimasukkan sebagai -
'D2y + 2Dy = 5 * sin (3 * x)'
Mari kita ambil contoh sederhana dari persamaan diferensial orde satu: y '= 5y.
s = dsolve('Dy = 5*y')
MATLAB menjalankan kode dan mengembalikan hasil berikut -
s=
C2*exp(5*t)

114
Mari kita ambil contoh lain dari persamaan diferensial orde dua sebagai: y "- y = 0, y (0) = -1,
y '(0) = 2.
dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')
MATLAB menjalankan kode dan mengembalikan hasil berikut -
ans =
exp(t)/2 - (3*exp(-t))/2

MATLAB - Integration
Integrasi berhubungan dengan dua jenis masalah yang pada dasarnya berbeda.

 Pada tipe pertama, turunan dari suatu fungsi diberikan dan kita ingin mencari
fungsinya. Oleh karena itu, pada dasarnya kami membalik proses diferensiasi. Proses
kebalikan ini dikenal sebagai anti-diferensiasi, atau menemukan fungsi primitif, atau
menemukan integral tak tentu .

 Jenis masalah kedua melibatkan penjumlahan sejumlah besar kuantitas yang sangat
kecil dan kemudian mengambil batas ketika ukuran kuantitas mendekati nol,
sedangkan jumlah suku cenderung tak terhingga. Proses ini mengarah pada
definisi integral pasti .
Integral pasti digunakan untuk mencari luas, volume, pusat gravitasi, momen inersia,
pekerjaan yang dilakukan oleh suatu gaya, dan dalam berbagai aplikasi lainnya.
Menemukan Integral Tak Terbatas Menggunakan MATLAB
Menurut definisi, jika turunan dari fungsi f (x) adalah f '(x), maka kita katakan bahwa integral
tak tentu dari f' (x) terhadap x adalah f (x). Misalnya, karena turunan (terhadap x) dari
x 2 adalah 2x, kita dapat mengatakan bahwa integral tak tentu dari 2x adalah x 2 .
Dalam simbol -
f '(x 2 ) = 2x , oleh karena itu,
∫ 2xdx = x 2 .
Integral tak tentu tidak unik, karena turunan dari x 2 + c, untuk nilai konstanta c apa pun, juga
akan menjadi 2x.
Ini diekspresikan dalam simbol sebagai -
∫ 2xdx = x 2 + c .
Di mana, c disebut 'konstanta sembarang'.
MATLAB menyediakan perintah int untuk menghitung integral dari ekspresi. Untuk
mendapatkan ekspresi integral tak tentu dari suatu fungsi, kita tulis -

115
int(f);
Misalnya, dari contoh kami sebelumnya -
syms x
int(2*x)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans =
x^2
Contoh 1
Dalam contoh ini, mari kita temukan integral dari beberapa ekspresi yang umum
digunakan. Buat file skrip dan ketik kode berikut di dalamnya -
syms x n
int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f=
sin(n*t)
ans =
-cos(n*t)/n
ans =
(a*sin(pi*t))/pi
ans =
a^x/log(a)

116
Contoh 2
Buat file skrip dan ketik kode berikut di dalamnya -
syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))

int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))

int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2)


pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
Perhatikan bahwa fungsi pretty mengembalikan ekspresi dalam format yang lebih mudah
dibaca.
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
sin(x)

ans =
exp(x)

ans =
x*(log(x) - 1)
ans =
log(x)

117
ans =
(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 -
(4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5
2 4
24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x)
----------- + ------------- - -------------- + ------------
3125 625 125 5

3 5

4 x sin(5 x) x sin(5 x)
------------- + -----------
25 5

ans =
-1/(4*x^4)

ans =
tan(x)
2
x (3 x - 5 x + 1)

ans =
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
6 5 4 3
7x 3x 5x x
- ---- - ---- + ---- + --
12 5 8 2
Menemukan Integral Pasti Menggunakan MATLAB

118
Menurut definisi, integral pasti pada dasarnya adalah batas penjumlahan. Kami menggunakan
integral pasti untuk mencari area seperti area antara kurva dan sumbu x dan area antara dua
kurva. Integral pasti juga dapat digunakan dalam situasi lain, di mana kuantitas yang
dibutuhkan dapat dinyatakan sebagai batas penjumlahan.
Fungsi int dapat digunakan untuk integrasi tertentu dengan melewati batas yang ingin Anda
hitung integralnya.
Menghitung

kami menulis,
int(x, a, b)

Misalnya, untuk menghitung nilai yang kita tulis -


int(x, 4, 9)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans =
65/2
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);
a = polyval(integral, 9) - polyval(integral, 4);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
32.500

119
Solusi alternatif dapat diberikan menggunakan fungsi quad () yang disediakan oleh Oktaf
sebagai berikut -
pkg load symbolic
symbols

f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);

display('Area: '), disp(double(a));


Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
32.500
Contoh 1
Mari kita hitung luas area antara sumbu x, dan kurva y = x 3 −2x + 5 dan ordinatnya x = 1 dan
x = 2.
Area yang dibutuhkan diberikan oleh -

Buat file script dan ketik kode berikut -


f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
a=
23/4
Area:
5.7500
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols

120
x = sym("x");
f = x^3 - 2*x +5;
c = [1, 0, -2, 5];
integral = polyint(c);

a = polyval(integral, 2) - polyval(integral, 1);


display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:

5.7500
Solusi alternatif dapat diberikan menggunakan fungsi quad () yang disediakan oleh Oktaf
sebagai berikut -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^3 - 2*x +5");
[a, ierror, nfneval] = quad(f, 1, 2);
display('Area: '), disp(double(a));
Oktaf mengeksekusi kode dan mengembalikan hasil berikut -
Area:
5.7500
Contoh 2
Temukan luas di bawah kurva: f (x) = x 2 cos (x) untuk −4 ≤ x ≤ 9.
Buat file script dan tulis kode berikut -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Saat Anda menjalankan file, MATLAB memplot grafik -
121
Outputnya diberikan di bawah ini -
a=
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)

Area:
0.3326
Berikut adalah Oktaf ekuivalen dari perhitungan di atas -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));

MATLAB - Polynomials

122
MATLAB merepresentasikan polinomial sebagai vektor baris yang berisi koefisien yang
diurutkan berdasarkan pangkat turun. Misalnya, persamaan P (x) = x 4 + 7x 3 - 5x + 9 dapat
direpresentasikan sebagai -
p = [1 7 0 -5 9];
Mengevaluasi Polinomial
Fungsi polyval digunakan untuk mengevaluasi polinomial pada nilai yang
ditentukan. Misalnya, untuk mengevaluasi p polinomial kita sebelumnya , pada x = 4, ketik -
p = [1 7 0 -5 9];
polyval(p,4)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans = 693
MATLAB juga menyediakan fungsi polyvalm untuk mengevaluasi matriks
polinomial. Polinomial matriks adalah polinomial dengan matriks sebagai variabel.
Misalnya, mari kita membuat matriks persegi X dan mengevaluasi polinom p, di X -
p = [1 7 0 -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
ans =
2307 -1769 -939 4499
2314 -2376 -249 4695
2256 -1892 -549 4310
4570 -4532 -1062 9269
Menemukan Akar Polinomial
Fungsi akar menghitung akar polinomial. Misalnya, untuk menghitung akar dari polinom p
kita, ketik -
p = [1 7 0 -5 9];
r = roots(p)

MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -

123
r=
-6.8661 + 0.0000i
-1.4247 + 0.0000i
0.6454 + 0.7095i
0.6454 - 0.7095i
Fungsi poli adalah kebalikan dari fungsi akar dan mengembalikan ke koefisien
polinomial. Misalnya -
p2 = poly(r)
MATLAB menjalankan pernyataan di atas dan mengembalikan hasil berikut -
p2 =

Columns 1 through 3:
1.00000 + 0.00000i 7.00000 + 0.00000i 0.00000 + 0.00000i

Columns 4 and 5:
-5.00000 - 0.00000i 9.00000 + 0.00000i

Pemasangan Kurva Polinomial


Fungsi polyfit mencari koefisien dari polinomial yang sesuai dengan sekumpulan data dalam
arti kuadrat-terkecil. Jika x dan y adalah dua vektor yang berisi data x dan y untuk dipasang
ke polinomial derajat-n, maka kita mendapatkan polinom yang cocok dengan data tersebut
dengan menulis -
p = polyfit(x,y,n)
Contoh
Buat file script dan ketik kode berikut -
x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %get the polynomial

% Compute the values of the polyfit estimate over a finer range,


% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;
124
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
Saat Anda menjalankan file, MATLAB menampilkan hasil berikut -
p=
4.1056 -47.9607 222.2598 -362.7453 191.1250
Dan plot grafik berikut -

MATLAB - Transforms
MATLAB menyediakan perintah untuk bekerja dengan transformasi, seperti transformasi
Laplace dan Fourier. Transformasi digunakan dalam sains dan teknik sebagai alat untuk
menyederhanakan analisis dan melihat data dari sudut lain.
Misalnya, transformasi Fourier memungkinkan kita untuk mengubah sinyal yang
direpresentasikan sebagai fungsi waktu menjadi fungsi frekuensi. Transformasi Laplace
memungkinkan kita untuk mengubah persamaan diferensial menjadi persamaan aljabar.
MATLAB menyediakan perintah laplace , fourier dan fft untuk bekerja dengan transformasi
Laplace, Fourier dan Fast Fourier.

Transformasi Laplace
125
Transformasi Laplace dari fungsi waktu f (t) diberikan oleh integral berikut -

Transformasi Laplace juga dilambangkan sebagai transformasi dari f (t) menjadi F (s). Anda
dapat melihat proses transformasi atau integrasi ini mengubah f (t), sebuah fungsi dari
variabel simbolik t, menjadi fungsi lain F (s), dengan variabel lain s.
Transformasi Laplace mengubah persamaan diferensial menjadi persamaan aljabar. Untuk
menghitung transformasi Laplace dari sebuah fungsi f (t), tulis -
laplace(f(t))
Contoh
Dalam contoh ini, kami akan menghitung transformasi Laplace dari beberapa fungsi yang
umum digunakan.
Buat file script dan ketik kode berikut -
syms s t a b w
laplace(a)
laplace(t^2)
laplace(t^9)
laplace(exp(-b*t))
laplace(sin(w*t))
laplace(cos(w*t))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
1/s^2

ans =
2/s^3

ans =
362880/s^10

ans =
126
1/(b + s)

ans =
w/(s^2 + w^2)

ans =
s/(s^2 + w^2)

Transformasi Laplace Terbalik


MATLAB memungkinkan kita untuk menghitung transformasi Laplace terbalik
menggunakan perintah ilaplace .
Sebagai contoh,
ilaplace(1/s^3)
MATLAB akan mengeksekusi pernyataan di atas dan menampilkan hasilnya -
ans =
t^2/2
Contoh
Buat file script dan ketik kode berikut -
syms s t a b w
ilaplace(1/s^7)
ilaplace(2/(w+s))
ilaplace(s/(s^2+4))
ilaplace(exp(-b*t))
ilaplace(w/(s^2 + w^2))
ilaplace(s/(s^2 + w^2))
Saat Anda menjalankan file, ini akan menampilkan hasil berikut -
ans =
t^6/720
ans =
2*exp(-t*w)
127
ans =
cos(2*t)

ans =
ilaplace(exp(-b*t), t, x)

ans =
sin(t*w)

ans =
cos(t*w)

Transformasi Fourier
Transformasi Fourier biasanya mengubah fungsi matematika waktu, f (t), menjadi fungsi
baru, kadang-kadang dilambangkan dengan atau F, yang argumennya adalah frekuensi
dengan satuan siklus / s (hertz) atau radian per detik. Fungsi baru ini kemudian dikenal
sebagai transformasi Fourier dan / atau spektrum frekuensi dari fungsi f.
Contoh
Buat file skrip dan ketik kode berikut di dalamnya -
syms x
f = exp(-2*x^2); %our function
ezplot(f,[-2,2]) % plot of our function
FT = fourier(f) % Fourier transform

Saat Anda menjalankan file, MATLAB memplot grafik berikut -

128
Hasil berikut ditampilkan -
FT =
(2^(1/2)*pi^(1/2)*exp(-w^2/8))/2
Merencanakan transformasi Fourier sebagai -
ezplot(FT)
Memberikan grafik berikut -

Transformasi Fourier Terbalik

129
MATLAB menyediakan perintah ifourier untuk menghitung transformasi Fourier terbalik
suatu fungsi. Sebagai contoh,
f = ifourier(-2*exp(-abs(w)))
MATLAB akan mengeksekusi pernyataan di atas dan menampilkan hasilnya -
f=
-2/(pi*(x^2 + 1))

MATLAB - GNU Octave Tutorial


GNU Octave adalah bahasa pemrograman tingkat tinggi seperti MATLAB dan sebagian
besar kompatibel dengan MATLAB. Ini juga digunakan untuk perhitungan numerik.
Oktaf memiliki fitur umum berikut dengan MATLAB -

 matriks adalah tipe data fundamental

 itu memiliki dukungan bawaan untuk bilangan kompleks

 itu memiliki fungsi dan perpustakaan matematika built-in

 itu mendukung fungsi yang ditentukan pengguna

GNU Octave juga merupakan perangkat lunak yang dapat didistribusikan ulang secara
bebas. Anda dapat mendistribusikan dan / atau memodifikasinya di bawah ketentuan GNU
General Public License (GPL) yang diterbitkan oleh Free Software Foundation.
MATLAB vs Oktaf
Sebagian besar program MATLAB berjalan di Oktaf, tetapi beberapa program Oktaf
mungkin tidak berjalan di MATLAB karena, Oktaf mengizinkan beberapa sintaks yang tidak
dimiliki MATLAB.
Misalnya, MATLAB hanya mendukung tanda kutip tunggal, tetapi Oktaf mendukung tanda
kutip tunggal dan ganda untuk menentukan string. Jika Anda mencari tutorial tentang Oktaf,
silakan ikuti tutorial ini dari awal yang mencakup MATLAB serta Oktaf.
Contoh yang Kompatibel
Hampir semua contoh yang tercakup dalam tutorial ini kompatibel dengan MATLAB serta
Oktaf. Mari kita coba contoh berikut di MATLAB dan Oktaf yang menghasilkan hasil yang
sama tanpa perubahan sintaks -

Contoh ini membuat peta permukaan 3D untuk fungsi g = xe - (x 2 + y 2 ) . Buat file script dan
ketik kode berikut -
130
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Saat Anda menjalankan file, MATLAB menampilkan peta 3-D berikut -

Contoh yang Tidak Sesuai


Meskipun semua fungsi inti MATLAB tersedia dalam Oktaf, ada beberapa fungsi misalnya,
Kalkulus Diferensial & Integrasi, yang tidak sama persis dalam kedua bahasa
tersebut. Tutorial ini mencoba memberikan kedua jenis contoh yang berbeda dalam
sintaksnya.
Pertimbangkan contoh berikut di mana MATLAB dan Oktaf menggunakan fungsi yang
berbeda untuk mendapatkan luas kurva: f (x) = x 2 cos (x) untuk −4 ≤ x ≤ 9. Berikut adalah
versi MATLAB dari kode -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Saat Anda menjalankan file, MATLAB memplot grafik -

131
Hasil berikut ditampilkan
a=
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)

Area:
0.3326
Tetapi untuk memberikan luas kurva yang sama dalam Oktaf, Anda harus
menggunakan paket simbolik sebagai berikut -
pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));
MATLAB - Simulink

132
Simulink adalah simulasi dan lingkungan desain berbasis model untuk sistem dinamis dan
tertanam, terintegrasi dengan MATLAB. Simulink, juga dikembangkan oleh MathWorks,
adalah alat bahasa pemrograman grafis aliran data untuk pemodelan, simulasi, dan analisis
sistem dinamis multi-domain. Ini pada dasarnya adalah alat diagram blok grafis dengan
kumpulan pustaka blok yang dapat disesuaikan.
Ini memungkinkan Anda untuk memasukkan algoritma MATLAB ke dalam model serta
mengekspor hasil simulasi ke MATLAB untuk analisis lebih lanjut.
Simulink mendukung -

 desain tingkat sistem

 simulasi

 pembuatan kode otomatis

 pengujian dan verifikasi sistem tertanam

Ada beberapa produk tambahan lain yang disediakan oleh MathWorks serta produk
perangkat keras dan perangkat lunak pihak ketiga yang tersedia untuk digunakan dengan
Simulink.
Daftar berikut memberikan gambaran singkat tentang beberapa di antaranya -

 Stateflow memungkinkan pengembangan mesin negara dan diagram alir.

 Simulink Coder memungkinkan pembuatan kode sumber C untuk implementasi


sistem secara real-time secara otomatis.

 xPC Target bersama dengan sistem real-time berbasis x86 menyediakan


lingkungan untuk mensimulasikan dan menguji model Simulink dan Stateflow secara
real-time pada sistem fisik.

 Embedded Coder mendukung target tertanam tertentu.

 HDL Coder memungkinkan untuk secara otomatis menghasilkan VHDL dan Verilog


yang dapat disintesis.

 SimEvents menyediakan pustaka blok bangunan grafis untuk pemodelan sistem


antrian.
Simulink mampu memverifikasi dan memvalidasi model secara sistematis melalui
pemeriksaan gaya pemodelan, keterlacakan persyaratan, dan analisis cakupan model.
Simulink Design Verifier memungkinkan Anda mengidentifikasi kesalahan desain dan
menghasilkan skenario kasus uji untuk pemeriksaan model.
Menggunakan Simulink
Untuk membuka Simulink, ketik ruang kerja MATLAB -

133
simulink
Simulink terbuka dengan Library Browser . Library Browser digunakan untuk membangun
model simulasi.

Di panel jendela sisi kiri, Anda akan menemukan beberapa pustaka yang dikategorikan
berdasarkan berbagai sistem, mengklik masing-masing akan menampilkan blok desain di
panel jendela kanan.

134
Model Bangunan
Untuk membuat model baru, klik tombol New pada toolbar Library Browser. Ini membuka
jendela model baru tanpa judul.

135
Model Simulink adalah diagram blok.
Elemen model ditambahkan dengan memilih elemen yang sesuai dari Library Browser dan
menyeretnya ke jendela Model.
Sebagai alternatif, Anda dapat menyalin elemen model dan menempelkannya ke jendela
model.
Contoh
Seret dan lepas item dari perpustakaan Simulink untuk membuat proyek Anda.
Untuk tujuan contoh ini, dua blok akan digunakan untuk simulasi - Sumber (sinyal)
dan Tenggelam (ruang lingkup). Generator sinyal (sumber) menghasilkan sinyal analog,
yang kemudian akan divisualisasikan secara grafis oleh scope (sink).

Mulailah dengan menyeret blok yang diperlukan dari perpustakaan ke jendela


proyek. Kemudian, hubungkan blok bersama-sama yang dapat dilakukan dengan menyeret
konektor dari titik koneksi di satu blok ke blok lainnya.
Mari kita seret blok 'Gelombang Sinus' ke dalam model.

136
Pilih 'Sinks' dari perpustakaan dan seret blok 'Cakupan' ke dalam model.

Tarik garis sinyal dari keluaran blok Gelombang Sinus ke masukan blok Lingkup.

137
Jalankan simulasi dengan menekan tombol ' Run ', biarkan semua parameter default (Anda
dapat mengubahnya dari menu Simulasi)
Anda harus mendapatkan grafik di bawah ini dari ruang lingkup.

138

Anda mungkin juga menyukai