MATLAB: Menguasai Array Multidimensi dan Khusus
Semua variabel dari semua tipe data dalam MATLAB adalah array multidimensi. Sebuah vektor adalah array satu dimensi dan matriks adalah array dua dimensi.
Kami telah membahas vektor dan matriks. Dalam bab ini, kami akan membahas array multidimensi. Namun, sebelum itu, mari kita bahas beberapa jenis array khusus.
Array Khusus dalam MATLAB
Dalam bagian ini, kami akan membahas beberapa fungsi yang membuat beberapa array khusus. Untuk semua fungsi ini, satu argumen menciptakan array persegi, argumen ganda menciptakan array persegi panjang.
Fungsi zeros() menciptakan array yang semuanya nol −
Sebagai contoh −
Live Demo
zeros(5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil 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() menciptakan array yang semuanya satu −
Sebagai contoh −
Live Demo
ones(4,3)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut −
ans = 1 1 1 1 1 1 1 1 1 1 1 1
Fungsi eye() menciptakan matriks identitas.
Sebagai contoh −
Live Demo
eye(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut −
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Fungsi rand() menciptakan array angka acak yang terdistribusi secara seragam pada (0,1) −
Sebagai contoh −
Live Demo
rand(3, 5)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil 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
Bujur Sangkar Ajaib
Sebuah bujur sangkar ajaib adalah bujur sangkar yang menghasilkan jumlah yang sama ketika elemennya ditambah baris demi baris, kolom demi kolom, atau secara diagonal.
Fungsi magic() menciptakan array bujur sangkar ajaib. Ia mengambil satu argumen yang memberikan ukuran bujur sangkar. Argumen harus berupa skalar yang lebih besar atau sama dengan 3.
Live Demo
magic(4)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil 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 dalam MATLAB. Array multidimensi dalam MATLAB adalah perluasan dari matriks dua dimensi normal.
Secara umum untuk menghasilkan array multidimensi, kita pertama-tama membuat array dua dimensi dan memperluasnya.
Sebagai contoh, buatlah array dua dimensi a.
Live Demo
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut −
a = 7 9 5 6 1 9 4 3 2
Array a adalah array 3-by-3; kita dapat menambahkan dimensi ketiga ke a, dengan memberikan nilai seperti −
Live Demo
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil 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 dapat membuat array multidimensi menggunakan fungsi ones(), zeros() atau rand().
Sebagai contoh,
Live Demo
b = rand(4,3,2)
MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil 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
Kita juga dapat menggunakan fungsi cat() untuk membuat array multidimensi. Ia menggabungkan daftar array sepanjang dimensi yang ditentukan −
Sintaks untuk fungsi cat() adalah −
B = cat(dim, A1, A2...)
Di mana,
B adalah array baru yang dibuat
A1, A2, ... adalah array yang akan digabungkan
dim adalah dimensi tempat array digabungkan
Contoh
Buat file skrip dan ketik kode berikut ke dalamnya −
Live Demo
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])
Ketika Anda menjalankan file, itu 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
Fungsi Array
MATLAB menyediakan fungsi berikut untuk mengurutkan, memutar, memutasi, mengubah bentuk, atau menggeser konten array.
| Fungsi | Tujuan |
|---|
| length | Panjang vektor atau dimensi array terbesar |
| ndims | Jumlah dimensi array |
| numel | Jumlah elemen array |
| size | Dimensi array |
| iscolumn | Menentukan apakah masukan adalah vektor kolom |
| isempty | Menentukan apakah array kosong |
| ismatrix | Menentukan apakah masukan adalah matriks |
| isrow | Menentukan apakah masukan adalah vektor baris |
| isscalar | Menentukan apakah masukan adalah skalar |
| isvector | Menentukan apakah masukan adalah vektor |
| blkdiag | Membangun matriks diagonal blok dari argumen masukan |
| circshift | Menggeser array secara melingkar |
| ctranspose | Transpose konjugat kompleks |
| diag | Matriks diagonal dan diagonal matriks |
| flipdim | Membalik array sepanjang dimensi yang ditentukan |
| fliplr | Membalik matriks dari kiri ke kanan |
| flipud | Membalik matriks dari atas ke bawah |
| ipermute | Membalik permutasi dimensi array N-D |
| permute | Mengatur ulang dimensi array N-D |
| repmat | Mereplikasi dan memasang array |
| reshape | Mengubah bentuk array |
| rot90 | Memutar matriks 90 derajat |
| shiftdim | Menggeser dimensi |
| issorted | Menentukan apakah elemen himpunan dalam urutan yang diurutkan |
| sort | Mengurutkan elemen array secara ascending atau descending |
| sortrows | Mengurutkan baris secara ascending |
| squeeze | Menghapus dimensi singleton |
| transpose | Transpose |
| vectorize | Mengvektorisasi ekspresi |
Contoh
Contoh berikut mengilustrasikan beberapa fungsi yang disebutkan di atas.
Panjang, Dimensi dan Jumlah elemen −
Buat file skrip dan ketik kode berikut ke dalamnya −
Live Demo
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
Ketika Anda menjalankan file, itu menampilkan hasil berikut −
ans = 8 ans = 4 ans = 23
Penggeseran Melingkar Elemen Array −
Buat file skrip dan ketik kode berikut ke dalamnya −
Live Demo
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.
Ketika Anda menjalankan file, itu 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
Mengurutkan Array
Buat file skrip dan ketik kode berikut ke dalamnya −
Live Demo
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
Ketika Anda menjalankan file, itu 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
Cell Array
Cell arrays adalah array dari sel terindeks di mana setiap sel dapat menyimpan array dengan dimensi dan tipe data yang berbeda.
Fungsi cell digunakan untuk membuat cell array. Sintaks untuk fungsi cell adalah −
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Di mana,
C adalah cell array;
dim adalah skalar integer atau vektor integer yang menentukan dimensi cell array C;
dim1, ... , dimN adalah skalar integer yang menentukan dimensi C;
obj adalah salah satu dari berikut −
- Java array or object
- .NET array of type System.String or System.Object
Contoh
Buat file skrip dan ketik kode berikut ke dalamnya −
Live Demo
c = cell(2, 5); c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5} Ketika Anda menjalankan file, itu 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 [1,5] = White [2,5] = 5 } Mengakses Data dalam Cell Arrays
Ada dua cara untuk merujuk elemen dari cell array −
- Mengapit indeks dalam kurung pertama (), untuk merujuk ke himpunan sel
- Mengapit indeks dalam kurung kurawal {}, untuk merujuk ke data dalam sel individu
Ketika Anda mengapit indeks dalam kurung pertama, itu merujuk ke himpunan sel.
Indeks cell array dalam kurung halus merujuk ke himpunan sel.
Sebagai contoh −
Live Demo
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 berikut −
ans = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 } Anda juga dapat mengakses isi sel dengan mengindeks dengan kurung kurawal.
Sebagai contoh −
Live Demo
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4} MATLAB akan mengeksekusi pernyataan di atas dan mengembalikan hasil berikut −
ans = Blue ans = Green ans = Yellow