Sepanjang Course ini kita telah menulis ratusan baris kode MATLAB — dari operator aritmetika pertama hingga classdef dan error handling. Saat mengerjakan proyek nyata, kita tidak lagi butuh penjelasan panjang: kita butuh tabel yang bisa dipindai dalam hitungan detik untuk mengingat kembali satu bentuk sintaks. Chapter ini memadatkan seluruh sintaks inti Course ke dalam satu halaman rujukan, dikelompokkan per kategori dengan satu contoh baris tunggal per item. Pola URL halaman dokumentasi lengkapnya tersedia di Chapter Dokumentasi Resmi.

Operator #

Tiga tabel berikut merangkum seluruh operator yang kita pakai. Aturan kuncinya satu kalimat: operator dot (.*, ./, .^) bekerja elemen-per-elemen, sedangkan operator tanpa dot (*, /, \, ^) mengikuti aturan aljabar linear matriks — kesalahan mencampur keduanya adalah sumber galat Inner matrix dimensions must agree. yang kita bedah di Chapter Panduan Debugging.

OperatorOperasiContohHasil
+ -tambah, kurang / negasi7 + 3, -710, -7
*perkalian matriks[1 2; 3 4] * [5; 6][17; 39]
.*perkalian elemen-per-elemen[1 2] .* [3 4][3 8]
/pembagian kanan7 / 32.3333
./pembagian elemen-per-elemen[6 9] ./ [2 3][3 3]
\pembagian kiri, A\b = inv(A)*b3 \ 72.3333
.^pangkat elemen-per-elemen[1 2] .^ 3[1 8]
^pangkat matriks (perkalian berulang)[0 1; 1 0] ^ 2eye(2)
'transpose kompleks konjugat[1 2]'kolom 2×1
.'transpose biasa (non-konjugat)complex(1,2).'tanpa konjugat

Operator perbandingan selalu menghasilkan logical, dan operator logika menggabungkan mask tersebut — fondasi logical indexing di tabel array:

OperatorArtiContohHasil
==sama dengan5 == 5true
~=tidak sama dengan5 ~= 3true
< > <= >=pembanding nilai3 < 2false
&AND elemen (array)true & falsefalse
|OR elemen (array)true | falsetrue
&&AND short-circuit (skalar)n > 0 && n < 10true
||OR short-circuit (skalar)x == 0 || 1/x < 2aman saat x == 0
~NOT~truefalse

Struktur Kontrol #

Empat konstruksi kendali alur Course — if, switch, for, while, plus try — berbagi satu aturan sintaks: semuanya ditutup end. Tabel berikut merangkum bentuk terpendek tiap konstruksi:

KonstruksiBentuk ringkasCatatan kunci
if / elseif / elseif suhu > 37.5; status = 'demam'; endkondisi skalar; elseif boleh berulang
switch / case / otherwisecase 'mie' … otherwiseuji kesetaraan (==/strcmp), satu case bisa memuat cell {6, 7}
forfor i = 1:2:10 ... enditerasi kolom array apa pun, bukan hanya rentang
whilewhile tol > 1e-6 ... endkondisi dicek tiap iterasi — pastikan ada jalan keluar
try / catchtry ... catch err ... enderr adalah objek MException (.message, .stack)
break / continueif x < 0; break; endbreak keluar loop, continue lompat ke iterasi berikut

Contoh gabungan keempat konstruksi dalam satu potongan yang dapat diuji:

matlab
data = [4 -1 9 0];
total = 0;
for i = 1:numel(data)
    if data(i) < 0
        continue
    end
    total = total + data(i);
end
fprintf('total nilai non-negatif: %d\n', total);

Output yang Dihasilkan:

text
total nilai non-negatif: 13

Fungsi #

Fungsi adalah unit organisasi terbesar Course: satu fungsi per berkas, nama berkas = nama fungsi, variabel lokal per workspace. Tabel berikut merangkum seluruh wujud fungsi yang kita tulis:

WujudBentukKapan dipakai
function filefunction y = kuadrat(x) … endkode dipakai ulang, ada help H1
keluaran gandafunction [mi, ma] = rentang(v)beberapa hasil sekaligus; pemanggil boleh ambil satu
masukan opsionalif nargin < 2; tol = 1e-6; enddefault argumen tanpa arguments
jumlah variabelfunction total = jumlah(varargin)masukan tak tertentu; varargin = cell array
anonymouskuadrat = @(x) x.^2;satu ekspresi, tanpa berkas — favorit ode45, fzero
handlef = @sin; f(pi/2)fungsi sebagai nilai; feval, cellfun, arrayfun
local/subfunctionfungsi kedua di akhir berkashelper privat satu modul

Anonymous function dan handle adalah jembatan menuju pemrograman fungsional: cellfun(@abs, {-3, 4}) mengembalikan array [3 4] (output seragam), dan fzero(@(x) x - cos(x), 1) menyelesaikan akar tanpa berkas terpisah.

Array dan Indexing #

Array adalah struktur data bawaan MATLAB — dan indexing adalah bahasa operasinya. Semua pola dari section Array dan Matriks dipadatkan di sini:

PolaMaknaContohHasil
A(r, c)elemen baris r kolom c[150 250; 400 500] → (2,1)400
A(k)linear index (column-major)matriks sama → (3)250
A(:, c)seluruh kolom cM(:, 1)vektor kolom
A(r, :)seluruh baris rM(2, :)vektor baris
A(end, end)baris/kolom terakhirM(end, end)500
A(1:2:end, :)slicing baris ganjil—sub-matriks
A(A > 5)logical indexing[3 7 1 9] → mask > 5[7 9]
A([1 3])indeks vektor (bisa berulang)[3 7 1 9] → [1 3][3 1]
sub2ind / ind2subkonversi dua arah subscript ↔ linearsub2ind([2 3], 1, 2)3
A(idx) = []hapus elemenx(2) = []panjang berkurang
reshape(A, r, c)ubah bentuk, urutan column-major tetapreshape(1:6, 2, 3)matriks 2×3

classdef dalam Sebelas Baris #

Sintaks classdef minimum yang kita bangun di section Pemrograman Berorientasi Objek — value class; tambahkan < handle pada baris classdef untuk handle class (assignment berbagi objek, bukan menyalin):

matlab
classdef Titik
    properties
        x = 0
        y = 0
    end
    methods
        function obj = Titik(x, y)
            if nargin > 0; obj.x = x; obj.y = y; end
        end
        function d = jarakOrigin(obj)
            d = hypot(obj.x, obj.y);
        end
    end
end

Blok properties boleh memuat atribut (Constant, Dependent), blok methods memuat Static dan Access — daftar lengkapnya di Chapter Properties dan Methods.

Format Specifier fprintf #

Tabel penutup yang paling sering dibuka: format specifier fprintf/sprintf:

SpecifierMenampilkanContohHasil
%dnilai bulatfprintf('%d', 42)42
%fdesimal tetap (6 digit)fprintf('%f', pi)3.141593
%.2fdesimal 2 digitfprintf('%.2f', pi)3.14
%8.2flebar 8 rata kanan, 2 desimalfprintf('%8.2f', 3.1)3.10
%enotasi eksponenfprintf('%e', pi)3.141593e+00
%gpaling ringkas %f/%efprintf('%g', pi)3.14159
%steks (char/string)fprintf('%s', 'MATLAB')MATLAB
%%tanda persen literalfprintf('100%%')100%
\npindah barisfprintf('A\nB')dua baris
%5s / %-5steks lebar tetap / rata kiri`fprintf(’%-6s‘, ‘ab’)`

Ringkasan #

Halaman ini adalah peta sintaks Course dalam satu tempat: operator aritmetika dan dot, perbandingan, serta logika; struktur kontrol if/switch/for/while/try yang semuanya ditutup end; tujuh wujud fungsi dari function file hingga anonymous; pola indexing subscript, linear, dan logical; kerangka classdef minimum; dan tabel format specifier. Simpan halaman ini sebagai cheat sheet pertama yang dibuka saat menulis kode — rujukan fungsi bawaan per kategori menyusul di Chapter Referensi Fungsi.