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