MATLAB - Array
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, sebelumnya, mari kita bahas beberapa jenis 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.
Itu zeros() fungsi membuat array dari semua nol -
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
Itu ones() fungsi membuat array dari semua yang -
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
Itu eye() fungsi 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
Itu rand() fungsi membuat larik angka acak terdistribusi seragam di (0,1) -
Misalnya -
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
SEBUAH magic square adalah bujur sangkar yang menghasilkan jumlah yang sama, jika elemen-elemennya ditambahkan berdasarkan baris, berdasarkan kolom atau secara diagonal.
Itu magic()fungsi 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 kita membuat array dua dimensi dan memperluasnya.
Sebagai contoh, 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
Array 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
Kita juga bisa menggunakan cat()berfungsi 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 larik yang akan digabungkan
redup adalah dimensi yang digunakan untuk menggabungkan array
Contoh
Buat file skrip dan ketik 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
Fungsi Array
MATLAB menyediakan fungsi berikut untuk mengurutkan, memutar, mengubah, membentuk kembali, atau menggeser konten array.
Fungsi | Tujuan |
---|---|
panjangnya | Panjang vektor atau dimensi larik terbesar |
ndims | Jumlah dimensi array |
nomor | 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 array sepanjang dimensi yang ditentukan |
fliplr | Membalik matriks dari kiri ke kanan |
flipud | Membalik matriks ke atas ke bawah |
ipermute | Membalikkan dimensi permute dari array ND |
menukar urutan | Mengatur ulang dimensi larik ND |
repmat | Replikasi dan susunan petak |
membentuk kembali | Membentuk ulang larik |
membusuk90 | Memutar matriks 90 derajat |
shiftdim.dll | 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 |
vektorisasi | Vektorisasi ekspresi |
Contoh
Contoh berikut menggambarkan beberapa fungsi yang disebutkan di atas.
Length, Dimension and Number of elements −
Buat file skrip dan ketik 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
Circular Shifting of the Array Elements −
Buat file skrip dan ketik 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
Menyortir Array
Buat file skrip dan ketik 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
Array Sel
Larik sel adalah larik sel yang diindeks di mana setiap sel dapat menyimpan larik dengan dimensi dan tipe data yang berbeda.
Itu cellfungsi digunakan untuk membuat array 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 -
- Array atau objek Java
- Array .NET berjenis System.String atau System.Object
Contoh
Buat file skrip dan ketik 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
[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