MATLAB – 4.1 Bölüm
MATLAB ORTAMINDA VEKTÖR VE MATRİS GÖSTERİMİ
Matlab ortamında her değişken ya bir vektör ya da bir matristir. Örneğin a=2 yazıldığında, a sayısı matlab arka planında 1*1 boyutunda bir matris olarak saklanır. Eğer söz konusu olan bir sayı değil de bir dizi ise matlab arka planında bir (satır ya da sütun) vektör olarak saklanır.
Uygulamalı anlatım.
| x | 0.0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
|---|---|---|---|---|---|---|---|---|---|---|
| y | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Yukarıdaki Tablo’yu Aşağıdaki Kodlarla İnceleyelim
Kod 1: x isimli bir dizi oluşturduk ve içerisine tablodaki sayıları sırasıyla ekledik. Sayılar, boşluk veya virgül ile ayrılabilir. Çıktısı, kodun hemen altında gösterilmiştir.
Kod 2: x dizisinin her elemanını 10 ile çarpıp 1 ekleyerek yeni oluşan değeri y değişkenine atadık.
Kod 3: x dizisinin 6. sıradaki elemanını ve y dizisinin 2. sıradaki elemanını seçerek ekrana yazdırdık.
|
1 2 3 4 5 6 |
>> x = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]; >> x ------ cikti ----- x = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 |
|
1 2 3 4 5 |
>> y = 10*x + 1; >> y ----- cikti ----- y = 1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 |
>> x(6) ans = 0.5000 >> y(2) ans = 2 |
(:) Operatörü kullanarak vektör elde edilmesi
- başlangıç değer : artış değer : son değer
|
1 2 3 |
>> A = 2:0.3:3.8 A = 2.0000 2.3000 2.6000 2.9000 3.2000 3.5000 3.8000 |
Açıklama; 2 den başla 3.8’e kadar 0.3 artarak git.
!!! Transpozu alınmak istenirse [2:0.3:3.8] şeklinde yazılmalı.
|
1 2 3 4 5 6 7 8 9 10 |
A = [2:0.3:3.8]' A = 2.0000 2.3000 2.6000 2.9000 3.2000 3.5000 3.8000 |
Mevcut vektörer kullanılarak başka vektörler elde edilmesi
|
1 2 3 4 5 |
> A = [2:0.3:3.8] B = A(3:1:6) A = 2.0000 2.3000 2.6000 2.9000 3.2000 3.5000 3.8000 B = 2.6000 2.9000 3.2000 3.5000 |
- 3. sıradan başla 1’er artarak 6. sıraya kadar git ve aradki sayıları B dizisine kopyala.
|
1 2 3 4 5 |
A = [2:0.3:3.8] C = A(5:-1:2) A = 2.0000 2.3000 2.6000 2.9000 3.2000 3.5000 3.8000 C = 3.2000 2.9000 2.6000 2.3000 |
- 5. sıradan başla 1 azalarak 2. sıraya kadar git ve aradaki değerleri C dizisine kopyala.
G = A(1:6) ; G dizine 1. sıradan 6. sıraya kadar 1’er artarak gider, yani artış verilmez ise artış miktarını matlab 1 kabul eder.
H = A(5:end) ; 5. sıradan başlayadak A dizinin sonuna kadar gider ver aradaki değerleri H dizisine kopyalar.
Vektör oluşturmanın diğer yöntemleri
-Birleştirme:
Daha önce tanımlanmış bir vektörü kullanarak
|
1 2 3 4 5 6 7 |
>> X=[1 2 8 6 -1]; >> Y=[11 X] ---- çıktı ----- Y = 11 1 2 8 6 -1 |
-Genişletme:
Daha önce tanımlanmış bir vektöre bazı yeni elemanların ilave edilmesi mümkündür:
|
1 2 3 4 5 6 |
>> Y(7) = 21; >> Y ---- çıktı ----- Y = 11 -1.4 2 8 6 -1 21 |
-Değiştirme:
Daha önce tanımlanmış bir vektörün bazı elemanlarını yeniden belirlemek mümkündür:
|
1 2 3 4 5 6 |
>> Y(2) = -1.4; >> Y ---- çıktı ----- Y = 11 -1.4 2 8 6 -1 |
Bir vektörün bir sayı ile işleme sokulması sonucunda yeni bir vektör elde edilmesi
|
1 2 3 4 5 6 |
>> E=(0:4:20)*3 >> E --- çıktı ---- E = 0 12 24 36 48 60 |
Verilen örnekte 0’dan 20’ye kadar 4’er artarak elde edilen sayıların 3 ile çarpma işlemine sokulması sonucunda E adlı yeni bir vektör oluşturulmaktadır. Yukarıda verilen çarpma işlemi köşeli parantez kullanılarak aşağıdaki şekilde de gerçekleştirilebilir:
|
1 2 3 4 5 6 |
>> N=(0:4:20)+2 >> N ---- çıktı ----- N = 2 6 10 14 18 22 |
linspace komutu kullanarak vektör üretilmesi:
Yukarıda verilen komut ile oluşturulan vektör matris elemanları arasındaki fark değeri şu formül ile hesaplanır:

Aşağıda, başlangıç değeri 0, son değeri 11 olan ve eleman sayısı 9 olan M adlı vektörün elde edilişi verilmiştir:
|
1 2 3 4 5 6 |
>> M = linspace(0,11,9) % (başlangıç sayısı, bitiş sayısı, toplam eleman sayısı) >> M ---- çıktı ----- M = 0 1.3750 2.7500 4.1250 5.5000 6.8750 8.2500 9.6250 11.0000 |
Açıklama:
linspace(başlangıç, bitiş, eleman sayısı)komutu, belirtilen başlangıç ve bitiş değerleri arasında eşit aralıklı sayılar içeren bir vektör oluşturur.- Bu örnekte, 0 ile 11 arasında eşit aralıklı 9 sayı üretilmiştir.
linspacefonksiyonunun avantajı, belirlenen sayıda dengeli bölünmüş eleman içeren bir vektör oluşturmaktır. Özellikle grafik çizimlerinde veya sayısal analizlerde sıkça kullanılır.
logspace komutu kullanarak vektör üretilmesi

logspacekomutu, 10’un üstel kuvvetleri şeklinde sayılar içeren bir vektör oluşturur.- Elemanlar arasındaki üstel artış şu formülle hesaplanır:
|
1 2 3 4 5 |
>> X = logspace(1,2,6) >> X ---- çıktı ----- X = 10.0000 15.8489 25.1189 39.8107 63.0957 100.0000 |
logspace(1,2,6), 10¹’den 10²’ye kadar logaritmik olarak bölünmüş 6 sayı üretir.- Örneğin, X’in 2. elemanı: 101.2=15.848910^{1.2} = 15.8489, X’in 4. elemanı: 101.6=39.810710^{1.6} = 39.8107, X’in 6. elemanı: 102=10010^2 = 100.
Vektör Uzunluğunun Hesaplanması
MATLAB’de bir vektörün eleman sayısını bulmak için length komutu kullanılır.
|
1 2 3 4 5 6 7 |
>> A = [3 5 7 9 11 30 42] A = 3 5 7 9 11 30 42 >> length(A) ans = 7 |
Sütun Vektör Oluşturulması
MATLAB’de sütun vektörü oluşturmak için elemanlar arasına ; konur.
|
1 2 3 4 5 6 7 |
>> x = [10; 20; 70; 80; 90] x = 10 20 70 80 90 |
Sütun vektörü transpoze işlemi (') ile de oluşturulabilir:
|
1 2 3 |
>> y = x' y = 10 20 70 80 90 |
Başka bir örnek:
|
1 2 3 4 5 6 7 |
>> y = [0 0.309 0.5878 0.809 0.9511 1.0 0.9511 0.809 0.5878 0.309 0] >> K = y([7 6 2 1])' K = 0.9511 1.0000 0.3090 0 |
Çarpım İşlemi ile Sütun Vektörü Oluşturma
|
1 2 3 4 5 6 7 8 |
>> D = [0:0.4:2]' * pi D = 0 1.2566 2.5133 3.7699 5.0265 6.2832 |
|
1 2 3 4 5 6 7 8 |
>> E = (0:0.4:2)' * pi E = 0 1.2566 2.5133 3.7699 5.0265 6.2832 |
Açıklama: (0:0.4:2)' transpoze edilerek sütun vektörü, ardından pi ile çarpılarak yeni vektör oluşturulmuştur.
Kompleks Vektörlerin Transpozu (')
|
1 2 3 |
>> a = [4j 1-5j -8-2j 5] a = 4.0000i 1.0000 - 5.0000i -8.0000 - 2.0000i 5 |
|
1 2 3 4 5 6 |
>> x = a' x = -4.0000i 1.0000 + 5.0000i -8.0000 + 2.0000i 5 |
- Açıklama:
'kullanımı vektörün hem transpozunu alır hem de eşlenik yapar.
Sadece transpoz almak için .' kullanılır:
|
1 |
>> w = a.' |
Kompleks Olmayan Vektörlerde ' ve .' Aynıdır
Kompleks olmayan vektörlerde ' ve .' işlemleri aynı sonucu verir.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
>> s = [-1 4 3 8] s = -1 4 3 8 >> y = s' y = -1 4 3 8 >> y = s.' y = -1 4 3 8 |
Açıklama: Kompleks sayı olmadığı için ' ve .' arasında fark yoktur.
Eğer kompleks bir vektörün yalnızca transpozunu almak istiyorsanız, karmaşık eşleniğini almadan transpoz işlemi yapmak için a.' (noktalı transpoz) operatörü kullanılmalıdır.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
>> z = [6j 3+9j -3-4j 12] z = 0.0000 + 6.0000i 3.0000 + 9.0000i -3.0000 - 4.0000i 12.0000 + 0.0000i >> w = z' w = 0.0000 - 6.0000i 3.0000 - 9.0000i -3.0000 + 4.0000i 12.0000 + 0.0000i %------ kullanımı ------ >> w = z.' w = 0.0000 + 6.0000i 3.0000 + 9.0000i -3.0000 - 4.0000i 12.0000 + 0.0000i |
Vektörün 0 veya 1 sayılardan oluşması
Burada zeros(satır,sütun) veya ones(satır,sütun) fonksiyonlarını göreceğiz.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>> A = zeros(3,3) A = 0 0 0 0 0 0 0 0 0 >> B = zeros(2,4) B = 0 0 0 0 0 0 0 0 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
>> C = ones(4,2) C = 1 1 1 1 1 1 1 1 >> D = ones(5,5) D = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
İki vektörün toplamı ve farkı
Vektörlerin eleman sayıları aynı olmalı.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
>> A = [1 2 3 4]; >> B = [3 5 1 0]; >> A+B ans = 4 7 4 4 >> A-B ans = -2 -3 2 4 |
Skaler Çarpım
Yukarıdaki A ve B vektörlerinin çarpımları dot() komutu ile olur.
|
1 2 3 4 5 |
>> dot(A,B) ans = 16 |
vektör değilde matris çarpılmak istenirse;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
% Yeni A ve B matrislerini tanımlama A = [3 -2 5; 4 1 -6]; B = [-1 3 2; 5 -4 0]; % Nokta çarpımını hesapla sonuc = dot(A, B); % Sonucu ekrana yazdır disp('A ve B matrislerinin nokta çarpımı:'); disp(sonuc); |
yani yine aynı komut ile bu işlemi yapacağız.
Öklid (Euclidean) Normu
Bir vektörün uzunluğu Öklid normu (vektör normu) olarak adlandırılır. Aşağıdaki formül ile hesaplanır fakat biz matlab komutu ile bu işlemi yapacağız.

|
1 2 3 4 5 6 |
>> x = [4 1 7]; norm(x) ans = 8.1240 |
Birim Vektör Nedir?
Birim vektör, bir vektörün yönünü değiştirmeden, normunu (büyüklüğünü) 1 yaparak elde edilen vektördür.
![]()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
% Orijinal vektörü tanımla x = [3 4 12]; % Vektörün normunu hesapla norm_x = norm(x); % Birim vektörü hesapla u_x = x / norm_x; % Sonuçları ekrana yazdır disp('Orijinal vektör:'); disp(x); disp('Vektörün normu:'); disp(norm_x); disp('Birim vektör:'); disp(u_x); |
İki Vektör Arasındaki Açının Hesaplanması
İki vektör arasındaki açı θ, aşağıdaki formülle hesaplanır:

Burada:
- a.b: Vektörlerin nokta çarpımı
- ∣a∣ ve ∣b∣: Vektörlerin Öklid normları (büyüklükleri)
- θ: Vektörler arasındaki açı
Bu formül, iki vektör arasındaki yön farkını bulmak için kullanılır.
ör:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
% A vektörünü tanımla A = [3 3 4]; % A vektörünün (x,y) düzlemindeki izdüşümünü tanımla Aiz = [3 3 0]; % İki vektör arasındaki açıyı hesapla (radyan cinsinden) teta = acos(dot(A, Aiz) / (norm(A) * norm(Aiz))); % Açıyı dereceye çevir tetader = (180/pi) * teta; % Sonuçları ekrana yazdır disp('Radyan cinsinden açı:'); disp(teta); disp('Derece cinsinden açı:'); disp(tetader); |
MATLAB’da Matris Çarpımı ve Boyut Uyumsuzluğu Hatası
Matris çarpımı yapılırken boyut uyumluluğu çok önemlidir. Bir matrisi ile bir B matrisini çarpabilmek için şu kuralın sağlanması gerekir:
![]()
Burada:
- AA matrisinin sütun sayısı (mm) BB matrisinin satır sayısına eşit olmalıdır.
- Eğer boyutlar uyumlu değilse MATLAB şu hatayı verir:
-
1Inner matrix dimensions must agree
(Bu hata, çarpılan matrislerin iç boyutlarının uyumsuz olduğunu belirtir.)
ör:
|
1 2 3 4 5 6 7 8 9 |
>> A = [4 6 -4]; % 1x3 boyutunda bir matris B = [2 0 1]; % 1x3 boyutunda bir matris C = A * B; % HATA! (1x3) * (1x3) çarpımı geçersiz Error using * Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the number of rows in the second matrix. To operate on each element of the matrix individually, use TIMES (.*) for elementwise multiplication. Related documentation |
çarpım da C = A.*B yapılırsa bu hatayı almayız ve çarpma işlemi gerçekleşir.
|
1 2 3 4 5 6 7 |
>> A = [4 6 -4]; % 1x3 boyutunda bir matris B = [2 0 1]; % 1x3 boyutunda bir matris C = A.*B; % (1x3) * (3x1) çarpımı geçerli C C = 8 0 -4 |
yada aşağıdaki şekilde yazılabilir.
|
1 2 3 4 5 6 7 |
>> A = [4 6 -4]; % 1x3 boyutunda bir matris B = [2; 0; 1]; % 3x1 boyutunda bir matris C = A * B; % (1x3) * (3x1) çarpımı geçerli C C = 4 |
başka bir örnekler
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
>> A = [3 5;1 9;7 8] A = 3 5 1 9 7 8 >> B = [2 3;4 8;9 12] B = 2 3 4 8 9 12 >> A.*B ans = 6 15 4 72 63 96 |
|
1 2 3 4 5 6 7 8 9 10 11 |
>> f = 100:100:500; g = 10:20:90; a = [f' g'] a = 100 10 200 30 300 50 400 70 500 90 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
>> t = (0:4)'; k= [n n.^2 2.^n] k = 0 0 1 1 1 2 2 4 4 3 9 8 4 16 16 5 25 32 6 36 64 |
Matrislerin Elemanl Adresleri
A matrisini oluşturduk ardından A(satır,sütun) diyerek ilgili satır-sütun daki sayıyı çağırabiliriz.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
>> A = [3 41 10 ; 12 -6 9;5 7 31] A = 3 41 10 12 -6 9 5 7 31 >> A(1,3) ans = 10 >> A(2,2) ans = -6 |

