Membuat matriks

Membentuk matriks dan vektor dengan tanda kurung siku serta perbedaan vektor baris dan vektor kolom.

Daftar isi

Matriks adalah struktur data utama MATLAB. Seluruh nilai, mulai dari satu angka pengukuran sampai tabel data penelitian, disimpan sebagai array berdimensi, dan hampir semua operasi MATLAB bekerja atas struktur tersebut. Topik ini membahas cara membentuk matriks dan vektor dengan tanda kurung siku, membedakan vektor baris dari vektor kolom, mengubah orientasi dengan operator transpose, lalu memeriksa ukuran hasil dengan size, length, dan numel. Setelah menguasai materi ini, data ukuran apa pun dapat disusun ke dalam bentuk yang diminta MATLAB dan dimensinya dapat dibaca dengan tepat.

Matriks sebagai wadah data berdimensi#

MATLAB adalah singkatan dari matrix laboratory, sehingga matriks menjadi satuan data yang paling mendasar. Sebuah matriks berukuran m×nm \times n memuat bilangan yang tersusun dalam mm baris dan nn kolom. Sebagai contoh, matriks berikut memuat dua baris dan tiga kolom:

A=[102030405060] A = \begin{bmatrix} 10 & 20 & 30 \\ 40 & 50 & 60 \end{bmatrix}

Istilah array digunakan untuk menyebut wadah berdimensi apa pun di MATLAB, dan matriks adalah array dua dimensi. Kasus khusus array juga memiliki nama tersendiri: array satu baris disebut vektor baris, array satu kolom disebut vektor kolom, dan array 1×11 \times 1 setara dengan sebuah bilangan tunggal yang disebut skalar. Pembedaan ini bukan perkara kosakata semata, karena banyak operasi MATLAB memeriksa dimensi operannya sebelum bekerja. Sebuah vektor baris berukuran 1×31 \times 3 tidak identik dengan vektor kolom berukuran 3×13 \times 1 meskipun bilangan di dalamnya sama, dan perbedaan orientasi itu berdampak nyata pada operasi aritmetika.

Menyusun matriks dengan tanda kurung siku#

Matriks dibentuk dengan membuka tanda kurung siku, menuliskan bilangan baris demi baris, lalu menutupnya kembali. Di dalam kurung siku, spasi atau koma memisahkan kolom yang berdampingan, sedangkan titik koma menandai akhir sebuah baris dan memulai baris berikutnya. Dua pernyataan berikut menghasilkan matriks yang sama, yang pertama menggunakan spasi sebagai pemisah kolom dan yang kedua menggunakan koma.

matlab Matriks 2 x 3 dengan dua gaya penulisan
A = [10 20 30; 40 50 60]
B = [10, 20, 30; 40, 50, 60]
text Keluaran
A =

   10   20   30
   40   50   60

B =

   10   20   30
   40   50   60

Kedua bentuk menghasilkan matriks 2×32 \times 3 dengan isi identik, sehingga pilihan antara spasi dan koma merupakan urusan keterbacaan. Gaya campuran juga sah, misalnya ketika beberapa kolom perlu diberi jarak yang jelas. Perhatikan pula bahwa kedua pernyataan tidak diakhiri titik koma, sehingga hasilnya langsung ditampilkan di Command Window. Perilaku penampilan hasil dari pernyataan tanpa titik koma ini disebut gema (echo), dan pada sesi interaktif gema merupakan cara tercepat untuk memeriksa isi sebuah variabel.

Vektor baris dan vektor kolom#

Vektor dibentuk dengan aturan yang sama seperti matriks, hanya dengan satu dimensi yang panjang. Tanpa titik koma di dalam kurung siku, hasilnya adalah vektor baris. Dengan titik koma sebagai pemisah, hasilnya adalah vektor kolom.

matlab Vektor baris dan vektor kolom
v = [10 20 30]
w = [10; 20; 30]
text Keluaran
v =

   10   20   30

w =

   10
   20
   30

Variabel v berukuran 1×31 \times 3, sedangkan w berukuran 3×13 \times 1. Orientasi seperti ini menentukan dimensi hasil saat vektor dijumlahkan atau dikalikan dengan data lain, sehingga kekeliruan orientasi termasuk sumber error yang sering dijumpai. Operator transpose, yang ditulis sebagai tanda petik satu ', menukar baris menjadi kolom sehingga vektor kolom berubah menjadi vektor baris dan sebaliknya.

matlab Transpose menukar orientasi vektor
w_baris = w'
v_kolom = v'
text Keluaran
w_baris =

   10   20   30

v_kolom =

   10
   20
   30

Transpose bekerja dua arah pada data apa pun, baik vektor maupun matriks berukuran m×nm \times n yang berubah menjadi n×mn \times m. Pada praktiknya, transpose sering digunakan untuk menyesuaikan orientasi data dengan yang diminta sebuah operasi, misalnya mengubah baris hasil pencatatan sensor menjadi vektor kolom. Konsekuensi dari kuatnya perbedaan orientasi ini juga perlu dicatat: kekeliruan orientasi tidak selalu memicu error, tetapi sering menjalar menjadi dimensi yang tidak cocok pada operasi berikutnya.

Ukuran array dengan size, length, dan numel#

Tiga fungsi melaporkan ukuran array dari sudut yang berbeda. Fungsi size mengembalikan pasangan banyak baris dan banyak kolom, length mengembalikan dimensi terbesar, dan numel menghitung banyak elemen.

matlab Memeriksa ukuran dengan size, length, dan numel
size(A)
size(v)
length(v)
numel(A)
text Keluaran
ans =

   2   3

ans =

   1   3

ans = 3
ans = 6

Pada matriks A, size menghasilkan pasangan 2 dan 3 sesuai bentuknya, sedangkan size pada vektor baris v menghasilkan 1 dan 3. Fungsi length bernilai 3 pada v karena vektor hanya memiliki satu dimensi yang panjang. Pada matriks non-persegi, length melaporkan dimensi terbesar, bukan banyak kolom, sehingga length(A) untuk matriks 2×32 \times 3 juga bernilai 3. Perilaku tersebut membuat length paling tepat digunakan pada vektor, sedangkan size lebih aman untuk matriks karena kedua dimensinya terlihat eksplisit. Fungsi numel menghitung 2×3=62 \times 3 = 6 elemen pada A dan menjadi pilihan yang tepat ketika hanya banyaknya data yang diperlukan.

Rangkaian pembentukan dan pemeriksaan di atas dapat ditulis sebagai satu skrip utuh agar dapat dijalankan ulang kapan saja.

matlab susun_matriks.m
% susun_matriks.m: membentuk matriks dan vektor, lalu memeriksa ukurannya

% spasi atau koma memisahkan kolom, titik koma memisahkan baris
A = [10 20 30; 40 50 60];
v = [10 20 30];
w = [10; 20; 30];

fprintf('matriks A berukuran %d x %d\n', size(A));
fprintf('v memiliki %d elemen\n', numel(v));
fprintf('w memiliki %d elemen\n', numel(w));
fprintf('transpose w menjadi vektor baris:\n');
disp(w');
text Keluaran
matriks A berukuran 2 x 3
v memiliki 3 elemen
w memiliki 3 elemen
transpose w menjadi vektor baris:
   10   20   30

Skrip tersebut mengakhiri setiap pernyataan dengan titik koma agar gema tidak memenuhi layar, lalu menampilkan hasil secara eksplisit melalui fprintf dan disp. Pola penulisan seperti ini memisahkan data dari laporan, sehingga keluaran tetap rapi ketika skrip diperpanjang.

Kesalahan umum#

Kesalahan berikut paling sering muncul ketika matriks disusun secara manual.

  • Baris dengan panjang berbeda. MATLAB menolak matriks yang baris-barisnya tidak sama panjang karena susunan persegi panjang tidak terbentuk. Pola try/catch digunakan pada contoh agar skrip tetap selesai meskipun pernyataannya gagal, dan pola tersebut dibahas lengkap pada modul alur kendali.
matlab Baris dengan jumlah kolom berbeda ditolak
try
  nilai = [78 85 90; 70 92]
catch e
  disp(e.message)
end
text Keluaran
vertical dimensions mismatch (1x3 vs 1x2)
  • Menukar peran pemisah. Tanda koma dan spasi sama-sama memisah kolom, tetapi titik koma memisah baris. Penulisan [1 2 3 4] menghasilkan vektor baris empat kolom, sedangkan [1 2; 3 4] menghasilkan matriks 2×22 \times 2. Kedua bentuk sah, tetapi maksud penulisnya sering kali hanya satu di antaranya.
  • Gema yang tidak disengaja. Pernyataan tanpa titik koma di akhir baris selalu menampilkan hasilnya. Pada skrip yang panjang, kebiasaan ini membanjiri layar dengan tampilan antara, sehingga menekan gema sebaiknya menjadi aturan bawaan, dan tampilan cukup dinyalakan saat isi variabel memang perlu diperiksa.

Ringkasan#

  • Spasi atau koma memisahkan kolom di dalam tanda kurung siku, sedangkan titik koma memisahkan baris.
  • Vektor baris berukuran 1×n1 \times n, vektor kolom berukuran n×1n \times 1, dan operator transpose ' menukar keduanya.
  • Fungsi size melaporkan banyak baris dan kolom, length melaporkan dimensi terbesar, dan numel menghitung banyak elemen.
  • Titik koma di akhir pernyataan menekan gema, sedangkan titik koma di dalam kurung siku memisahkan baris.

Referensi#