[Bölüm 11] MATLAB’ta Dizi Türleri

Merhaba arkadaşlar, bu yazımda sizlere MATLAB üzerinde kullanılan dizilerden bahsedeceğim.

  • single komutu bir diziyi tek hassasiyetli bir diziye dönüştürür.
  • double komutu bir diziyi çift duyarlıklı bir diziye dönüştürür.
a = magic(4);
b = single(a);

whos
   Name   Size   Bytes   Class

   a      4x4    128     double array
   b      4x4    64      single array

S = zeros(5,5,'single')
S =
   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

whos S
   Name   Size   Bytes   Class   Attributes

   S      5x5    100     single
  • int8(x) komutu x sayısını 8 bit(1byte) boyutunda bir tamsayı olacak şekilde MATLAB üzerinde tanımlar.
E = int8(10)
E =
   10

  • uint8(x) komutu x vektörünü 8 bit boyutunda işaretsiz bir sayıya çevirir.
uint8(5)
ans =
     5

  • intmax(‘int8’) yapısındaki komutlar parantez içerisinde belirtilen boyut koşulundaki en büyük tamsayıyı MATLAB üzerinde tanımlar.
intmax('int8')
ans =
     127

  • MATLAB üzerinde değişkenler yazı ile de tanımlanabilir.
H='Hamit'
X = H(4)
X =
   i

  • char komutu ile yazılan sayıyı MATLAB, ASCII ondalık sayı sistemiyle temsil edilen bir karakter olarak gösterir.
char(98)
ans =
     'b'

  • sparse komutu ile matrisler elemanları konumlarıyla birlikte görüntülenir.(0 elemanı belirtilmez.)
a=[1 2;3 4;5 0]
a =
   1   2
   3   4
   5   0

sparse (a)
ans =
     (1,1)   1
     (1,2)   2
     (1,3)   3
     (1,4)   4
     (1,5)   5
  • Aşağıdaki şekilde belirtilen durum (: , : , 4) ekinin matris tanımlanırken eklenmesiyle oluşturulmuştur. Bu sayede 4 farklı matris oluşturulmuştur. squuze(x) komutu yandaki şekilde gösterilen matrisleri (sayfaları) tek bir matris altında birleştirir.

Y =
Y(:,:,1) =
         0.5194
         0.8310

Y(:,:,2) =
         0.0346
         0.0535

Y(:,:,3) =
         0.5297
         0.6711

Z = squuze(Y)
Z =
   0.5194   0.0346   0.5297
   0.8310   0.0535   0.6711
  • Birden fazla ve birbirinden farklı türde dizileri bir araya getirirken { } operatörleri kullanılır.
A = 1:3 ;
B = ['abcdefg'] ;
C = single( [1,2,3;4,5,6] ) ;

my_cellarray = {A,B,C}
my_cellarray =
             [1x3 double] 'abcdefg' [2x3 single]

celldisp(my_cellarray)

my_cellarray{1} =
                1  2  3
my_cellarray{2} =
                abcdefg
my_cellarray{3} =
                1  2  3

my_cellarray(1)
ans =
     [1x3 double]

my_cellarray{3}(1,2)
ans =
     2

cellplot(my_cellarray)

  • Birden fazla ve birbirinden farklı türde diziler aşağıdaki yol ile de bir araya getirilebilir.
A = 1:3;
B = ['abcdefg'];
C = single([1,2,3;4,5,6]);

my_structure.some_numbers = A
my_structure =
       some_numbers: [1 2 3]

my_structure.some_letters = B
my_structure =
       some_numbers: [1 2 3]
       some_letters: 'abcdefg'

my_structure.some_more_numbers = C
my_structure =
       some_numbers: [1 2 3]
       some_letters: 'abcdefg'
       some_more_numbers: [2x3 single]

some_numbers: çift duyarlıklı sayısal veriler
some_letters: karakter verileri
some_more_numbers: tek duyarlıklı sayısal veriler

my_structure(2).some_numbers = [2 4 6 8]
my_structure =
1x2 struct array with fields:
       some_numbers
       some_letters
       some_more_numbers

NOT: Workspace penceresinde var olan değişkenlere tıklayarak array editor(dizi düzenleyicisi) kapsamında değişkenler ve diziler düzenlenebilir.