MATLAB - Diziler

MATLAB'daki tüm veri türlerinin tüm değişkenleri çok boyutlu dizilerdir. Bir vektör, tek boyutlu bir dizidir ve bir matris, iki boyutlu bir dizidir.

Vektörleri ve matrisleri zaten tartışmıştık. Bu bölümde, çok boyutlu dizileri tartışacağız. Bununla birlikte, bundan önce, bazı özel dizi türlerini tartışalım.

MATLAB'da Özel Diziler

Bu bölümde, bazı özel dizileri oluşturan bazı işlevleri tartışacağız. Tüm bu işlevler için, tek bir argüman kare bir dizi oluşturur, çift argümanlar dikdörtgen dizi oluşturur.

zeros() işlev tamamen sıfırlardan oluşan bir dizi oluşturur -

Örneğin -

zeros(5)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

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

ones() fonksiyon tüm olanlardan oluşan bir dizi oluşturur -

Örneğin -

ones(4,3)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

ans =
      1     1     1
      1     1     1
      1     1     1
      1     1     1

eye() işlevi bir kimlik matrisi oluşturur.

Örneğin -

eye(4)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

ans =
      1     0     0     0
      0     1     0     0
      0     0     1     0
      0     0     0     1

rand() fonksiyon, (0,1) üzerinde düzgün dağıtılmış rasgele sayılardan oluşan bir dizi oluşturur -

Örneğin -

rand(3, 5)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

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

Sihirli Kare

Bir magic square öğeleri satır, sütun veya çapraz olarak eklendiğinde aynı toplamı üreten bir karedir.

magic()işlevi sihirli bir kare dizisi oluşturur. Karenin boyutunu veren tekil bir argüman alır. Bağımsız değişken, 3'e eşit veya daha büyük bir skaler olmalıdır.

magic(4)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

ans =
   16     2     3    13
   5    11    10     8
   9     7     6    12
   4    14    15     1

Çok Boyutlu Diziler

MATLAB'da ikiden fazla boyuta sahip bir dizi çok boyutlu dizi olarak adlandırılır. MATLAB'deki çok boyutlu diziler normal iki boyutlu matrisin bir uzantısıdır.

Genellikle çok boyutlu bir dizi oluşturmak için önce iki boyutlu bir dizi oluşturup genişletiyoruz.

Örneğin, iki boyutlu bir dizi oluşturalım a.

a = [7 9 5; 6 1 9; 4 3 2]

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

a =
   7     9     5
   6     1     9
   4     3     2

Dizi , bir 3-ile-3 dizidir; Biz üçüncü bir boyut ekleyebilirsiniz bir benzeri değerler sağlayarak, -

a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

a =

ans(:,:,1) =

   0   0   0
   0   0   0
   0   0   0

ans(:,:,2) =

   1   2   3
   4   5   6
   7   8   9

Ayrıca ones (), sıfırlar () veya rand () işlevlerini kullanarak çok boyutlu diziler oluşturabiliriz.

Örneğin,

b = rand(4,3,2)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

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

Ayrıca kullanabiliriz cat()çok boyutlu diziler oluşturma işlevi. Belirli bir boyut boyunca dizilerin bir listesini birleştirir -

Cat () işlevinin sözdizimi -

B = cat(dim, A1, A2...)

Nerede,

  • B oluşturulan yeni dizidir

  • A1 , A2 , ... birleştirilecek dizilerdir

  • dim , dizilerin birleştirileceği boyuttur

Misal

Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -

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])

Dosyayı çalıştırdığınızda, -

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

Dizi İşlevleri

MATLAB, dizi içeriklerini sıralamak, döndürmek, izin vermek, yeniden şekillendirmek veya değiştirmek için aşağıdaki işlevleri sağlar.

Fonksiyon Amaç
uzunluk Vektör uzunluğu veya en büyük dizi boyutu
ndims Dizi boyutlarının sayısı
numel Dizi elemanlarının sayısı
boyut Dizi boyutları
iscolumn Girdinin sütun vektörü olup olmadığını belirler
boş Dizinin boş olup olmadığını belirler
ismatrix Girdinin matris olup olmadığını belirler
Isrow Girdinin satır vektörü olup olmadığını belirler
isscalar Girdinin skaler olup olmadığını belirler
vektör Girdinin vektör olup olmadığını belirler
blkdiag Giriş argümanlarından blok diyagonal matrisi oluşturur
daire değiştirme Diziyi dairesel olarak kaydırır
ctranspose Karmaşık eşlenik devrik
tanılama Çapraz matrisler ve matrisin köşegenleri
Flipdim Diziyi belirtilen boyut boyunca çevirir
Fliplr Matrisi soldan sağa çevirir
takla Matrisi yukarı aşağı çevirir
ipermute Tersler, ND dizisinin boyutlarını değiştirir
permütasyon ND dizisinin boyutlarını yeniden düzenler
repmat Kopyalar ve döşeme dizisi
yeniden şekillendirmek Diziyi yeniden şekillendirir
rot90 Matrisi 90 derece döndürür
Shiftdim Boyutları değiştirir
sıralı Set öğelerinin sıralı olup olmadığını belirler
çeşit Dizi öğelerini artan veya azalan sırada sıralar
Sıralamalar Satırları artan sırada sıralar
suyunu sıkmak Tekli boyutları kaldırır
değiştirmek Transpoze
vektörleştirmek Vectorizes ifadesi

Örnekler

Aşağıdaki örnekler, yukarıda bahsedilen işlevlerden bazılarını göstermektedir.

Length, Dimension and Number of elements −

Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -

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

Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -

ans =  8
ans =  4
ans =  23

Circular Shifting of the Array Elements −

Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -

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.

Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -

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

Dizileri Sıralama

Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -

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

Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -

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

Hücre Dizisi

Hücre dizileri, her hücrenin farklı boyut ve veri türlerinden oluşan bir diziyi depolayabildiği dizinlenmiş hücre dizileridir.

cellişlevi, bir hücre dizisi oluşturmak için kullanılır. Hücre işlevinin sözdizimi -

C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)

Nerede,

  • C hücre dizisidir;

  • dim , C hücre dizisinin boyutlarını belirten skaler bir tamsayı veya tamsayı vektörüdür;

  • dim1, ..., dimN , C'nin boyutlarını belirten skaler tam sayılardır;

  • obj aşağıdakilerden biridir -

    • Java dizisi veya nesnesi
    • System.String veya System.Object türünde .NET dizisi

Misal

Bir komut dosyası oluşturun ve aşağıdaki kodu içine yazın -

c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}

Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -

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
}

Hücre Dizilerindeki Verilere Erişim

Bir hücre dizisinin öğelerine başvurmanın iki yolu vardır -

  • Hücre kümelerine başvurmak için indisleri ilk parantez () içine alma
  • Tek tek hücrelerdeki verilere başvurmak için dizinleri kaşlı ayraçlar {} içine alma

Dizinleri ilk köşeli parantez içine aldığınızda, hücre kümesine başvurur.

Düz parantez içindeki hücre dizisi indeksleri, hücre kümelerini ifade eder.

Örneğin -

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

ans = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
}

Küme ayraçları ile dizin oluşturarak da hücrelerin içeriğine erişebilirsiniz.

Örneğin -

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}

MATLAB yukarıdaki ifadeyi çalıştıracak ve aşağıdaki sonucu döndürecektir -

ans = Blue
ans = Green
ans = Yellow