CODESCRIPT

Matrisler

51 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.

matrixAdd(a, b)

Eleman-bazlı toplama (yeni matris).

Aynı konumdaki hücreleri toplanmış yeni matris.

a
matrix
Birinci matris.
b
matrix
İkinci matris; boyutu a ile aynı olmalı.

Not

İki matris hücre hücre toplanır. Sonuç yeni matristir; girdiler değişmez.

Sınırlar

İki matrisin satır ve sütun sayısı aynı olmalıdır; boyutlar uyuşmazsa hata verir.

CODESCRIPT
a = matrixNew(2, 2, 1)
b = matrixNew(2, 2, 2)
s = matrixAdd(a, b)
plot(matrixGet(s, 0, 0))

1+2 = 3 (her hücre).

matrixAddCol(m, i?, array?)

i. konuma sütun ekler.

Değer döndürmez (na); matrisi yerinde bir sütun büyütür.

m
matrix
Sütun eklenecek matris.
i
number
Eklenecek konum (isteğe bağlı); verilmezse sona eklenir. Aralık dışıysa 0..sütun aralığına çekilir.
array
array
Sütun değerlerini taşıyan dizi (isteğe bağlı); satır sayısından kısaysa 0 ile doldurulur.

Not

Diziyi verilen konuma sütun olarak sokar ve sütun sayısını artırır. Matris boşsa (0 satır) eklenen sütunun uzunluğu satır sayısını belirler.

CODESCRIPT
m = matrixNew(2, 1, 1)
matrixAddCol(m, 1, arrayFrom(7, 8))
plot(matrixGet(m, 0, 1))

Sona eklenen sütunun ilk hücresi 7.

matrixAddRow(m, i?, array?)

i. konuma satır ekler.

Değer döndürmez (na); matrisi yerinde bir satır büyütür.

m
matrix
Satır eklenecek matris.
i
number
Eklenecek konum (isteğe bağlı); verilmezse sona eklenir. Aralık dışıysa 0..satır aralığına çekilir.
array
array
Satır değerlerini taşıyan dizi (isteğe bağlı); sütun sayısından kısaysa 0 ile doldurulur, uzunsa kırpılır.

Not

Diziyi verilen konuma satır olarak sokar ve satır sayısını artırır. Matris boşsa (0 sütun) ilk eklenen satırın uzunluğu sütun sayısını belirler.

Ne zaman kullanılır

Bir matrisi bar bar satır ekleyerek büyütmek için — biriken gözlemler tablosu.

CODESCRIPT
m = matrixNew(1, 2, 1)
matrixAddRow(m, 1, arrayFrom(7, 8))
plot(matrixGet(m, 1, 0))

Sona eklenen satırın ilk hücresi 7.

matrixAvg(matrix)

Tüm elemanların ortalaması.

Bütün hücrelerin aritmetik ortalaması; matris boşsa ya da matris değilse na.

matrix
matrix
Ortalaması alınacak matris.

Not

Toplamı hücre sayısına böler. Boş matriste na döner (0 değil); sonucu na() ile koruyun.

CODESCRIPT
m = matrixNew(2, 2, 4)
plot(matrixAvg(m))

Tüm hücreler 4 → ortalama 4.

matrixCol(matrix, j)

j. sütunu dizi olarak döner. Sonuc: Arr(len=2, [1.0, 1.0])

j. sütunun değerlerini taşıyan dizi; indeks sınır dışıysa boş dizi.

matrix
matrix
Sütunu alınacak matris.
j
number
Sütun indeksi; 0 ilk sütundur.

Not

Sütunu yukarıdan aşağıya dizi olarak toplar. Dönen dizi kopyadır; matrisi etkilemez.

Ne zaman kullanılır

Bir değişkenin (sütunun) tüm örneklerini dizi olarak işlemek için — ortalama, en büyük, standart sapma.

CODESCRIPT
m = matrixNew(3, 2, 5)
c = matrixCol(m, 1)
plot(arraySize(c))

1. sütun 3 elemanlı.

matrixCols(matrix)

Sütun sayısı.

Matristeki sütun sayısı; matris değilse 0.

matrix
matrix
Ölçülecek matris.

Not

Sütunlar üzerinde döngü sınırı için kullanılır. matrixColumns aynı işi yapan ikinci addır.

CODESCRIPT
m = matrixNew(3, 2, 0)
plot(matrixCols(m))

2 sütun.

matrixColumns(m)

Sütun sayısı (matrixCols ile aynı).

Matristeki sütun sayısı; matris değilse 0.

m
matrix
Ölçülecek matris.

Not

matrixCols ile birebir aynı sonucu verir — okunurluk için sağlanan ikinci addır.

CODESCRIPT
m = matrixNew(3, 4, 0)
plot(matrixColumns(m))

4 sütun.

matrixConcat(m1, m2)

m2'nin satırlarını m1'in altına ekler — m1 büyür, m1 döndürülür.

m1'in satırlarının altına m2'nin satırları eklenmiş yeni matris.

m1
matrix
Üstteki matris.
m2
matrix
Alta eklenecek matris; sütun sayısı m1 ile aynı olmalı.

Not

Dikey birleştirme yapar (satırları alt alta ekler). Sonuç yeni matristir; girdiler değişmez.

Sınırlar

İki matrisin sütun sayısı aynı olmalıdır; uyuşmazsa hata verir.

CODESCRIPT
a = matrixNew(1, 2, 1)
b = matrixNew(2, 2, 2)
c = matrixConcat(a, b)
plot(matrixRows(c))

1 satır + 2 satır → 3 satır.

matrixCopy(matrix)

Matrisin kopyası.

Kaynağın bağımsız (derin) bir kopyası; matris değilse boş 0×0 matris.

matrix
matrix
Kopyalanacak matris.

Not

Kopya asıldan tümüyle ayrıdır; birini değiştirmek diğerini etkilemez. Bir matrisi bozmadan üzerinde denemek için kullanılır.

CODESCRIPT
m = matrixNew(2, 2, 1)
c = matrixCopy(m)
matrixSet(c, 0, 0, 9)
plot(matrixGet(m, 0, 0))

Kopya değişse de asıl [0,0] hâlâ 1.

matrixDet(matrix)

Determinant (kare matris).

Matrisin determinantı (tek sayı); kare değilse ya da matris değilse na. Tekil (tersi olmayan) matriste 0 döner.

matrix
matrix
Determinantı alınacak kare matris.

Not

Kısmi pivotlu eleme ile hesaplanır. Determinantın 0 olması matrisin tersinin olmadığını (satır/sütunların bağımlı olduğunu) gösterir.

Sınırlar

Yalnız kare matris için tanımlıdır; kare değilse na döner.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 2)
matrixSet(m, 1, 1, 3)
plot(matrixDet(m))

Köşegen 2,3 → determinant 6.

matrixDiff(m1, m2)

Eleman-bazlı çıkarma (matris veya skaler).

m1'den m2'nin çıkarıldığı yeni matris.

m1
matrix
Kendisinden çıkarılacak matris.
m2
matrix
Çıkarılacak matris (aynı boyut) ya da her hücreden çıkarılacak tek sayı.

Not

İkinci argüman matris ise hücre hücre çıkarma yapılır; tek sayı ise o sayı bütün hücrelerden çıkarılır. Sonuç yeni matristir.

Sınırlar

İki matrisle kullanıldığında boyutlar aynı olmalıdır; uyuşmazsa hata verir.

CODESCRIPT
a = matrixNew(2, 2, 5)
b = matrixNew(2, 2, 2)
d = matrixDiff(a, b)
plot(matrixGet(d, 0, 0))

5-2 = 3 (her hücre).

matrixEigenvalues(m)

Özdeğerler dizisi (simetrik; Jacobi). Sonuc: Arr(len=2, [2.0000000000000004, 0.0])

Öz-değerleri büyükten küçüğe sıralı taşıyan dizi; kare değilse ya da boşsa boş dizi.

m
matrix
Öz-değerleri alınacak kare (simetrik) matris.

Not

Simetrik matrisler için Jacobi yöntemiyle hesaplanır. Öz-değerler matrisin köşegen değerlerini (temel eksenlerdeki büyüklüğü) verir.

Ne zaman kullanılır

Kovaryans matrisinden temel bileşenleri (baskın yönleri) çıkarmak — boyut indirgeme, risk yoğunlaşması.

Sınırlar

Yöntem simetrik matrisler içindir; simetrik olmayan matriste sonuç anlamlı olmaz. Önce matrixIsSymmetric ile doğrulayın.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 2)
matrixSet(m, 1, 1, 3)
ev = matrixEigenvalues(m)
plot(arrayGet(ev, 0))

Köşegen 2,3 → en büyük öz-değer 3.

matrixEigenvectors(m)

Özvektör matrisi (simetrik; Jacobi).

Sütunları öz-vektörler olan yeni matris; kare değilse ya da boşsa boş matris.

m
matrix
Öz-vektörleri alınacak kare (simetrik) matris.

Not

Simetrik matrisler için Jacobi yöntemiyle hesaplanır; sonuç matrisinin her sütunu bir öz-vektördür ve matrixEigenvalues sırasıyla eşleşir.

Sınırlar

Yöntem simetrik matrisler içindir; simetrik olmayan matriste sonuç anlamlı olmaz. Önce matrixIsSymmetric ile doğrulayın.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 2)
matrixSet(m, 1, 1, 3)
v = matrixEigenvectors(m)
plot(matrixRows(v))

2×2 simetrik → öz-vektör matrisi 2 satırlı.

matrixElementsCount(m)

Eleman sayısı (satır×sütun).

Toplam hücre sayısı (satır × sütun); matris değilse 0.

m
matrix
Sayılacak matris.

Not

İstatistik fonksiyonlarına (matrixAvg, matrixMedian) girmeden önce matrisin dolu olup olmadığını denetlemek için kullanışlıdır.

CODESCRIPT
m = matrixNew(2, 3, 0)
plot(matrixElementsCount(m))

2×3 = 6 hücre.

matrixFill(matrix, value)

Tüm elemanları değerle doldurur.

Değer döndürmez (na); matrisin bütün hücrelerini yerinde değere eşitler.

matrix
matrix
Doldurulacak matris.
value
number
Tüm hücrelere yazılacak değer; sayı değilse 0.

Not

Boyutu değiştirmez, yalnız içeriği tek değerle ezer. Bir matrisi yeniden kullanmadan önce sıfırlamanın hızlı yoludur.

Ne zaman kullanılır

Bir matrisi tek bir değere (çoğunlukla 0) tümden sıfırlamak için.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixFill(m, 3)
plot(matrixSum(m))

Dört hücre 3 → toplam 12.

matrixGet(matrix, i, j)

Matrisin belirli satır ve sütunundaki gözü verir. Satır ve sütun sıfırdan başlar.

i. satır, j. sütundaki hücre değeri; indeks sınır dışıysa na döner (hata vermez).

matrix
matrix
Okunacak matris.
i
number
Satır indeksi; 0 ilk satırdır.
j
number
Sütun indeksi; 0 ilk sütundur.

Not

Satır ve sütun 0'dan başlar. Sınır dışı indekste çökmez, na verir; sonucu na() ile kontrol edebilirsiniz.

Ne zaman kullanılır

Matristeki belirli bir konumdaki değeri okumak için. Satırın ya da sütunun tamamını almak istiyorsanız matrixRow/matrixCol kullanın.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 1, 9)
plot(matrixGet(m, 0, 1))

0. satır 1. sütuna yazılan 9 okunur.

matrixInv(matrix)

Ters matris (tekilse boş).

Matrisin tersi (yeni matris); kare değilse ya da tekil (tersi yok) ise na.

matrix
matrix
Tersi alınacak kare matris.

Not

Gauss-Jordan eleme ile hesaplanır. Tersle çarpım birim matrisi verir. Determinantı 0 olan matrisin tersi yoktur; bu durumda na döner.

Sınırlar

Yalnız kare ve tekil-olmayan matrislerde sonuç verir; aksi hâlde na. Sonucu na() ile korumadan çarpıma sokmayın.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 4)
matrixSet(m, 1, 1, 4)
inv = matrixInv(m)
plot(matrixGet(inv, 0, 0))

Köşegen 4 → ters köşegen 0.25.

matrixIsAntidiagonal(m)

Anti-köşegen matris mi. Sonuc: False

Kare ve karşı köşegen (i+j = n-1) dışındaki bütün hücreleri 0 ise true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Karşı köşegen sağ-üstten sol-alta uzanan köşegendir; bu denetim yalnız o köşegenin dolu olabileceğini doğrular.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 1, 3)
matrixSet(m, 1, 0, 4)
plot(matrixIsAntidiagonal(m) ? 1 : 0)

Yalnız karşı köşegen dolu → 1 (evet).

matrixIsAntisymmetric(m)

Anti-simetrik mi. Sonuc: False

Kare ve her hücre karşısının negatifine eşitse (m[i][j] = -m[j][i]) true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Ters-simetrik matriste köşegen zorunlu olarak 0'dır (çünkü m[i][i] = -m[i][i] ancak 0 için geçerlidir).

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 1, 3)
matrixSet(m, 1, 0, -3)
plot(matrixIsAntisymmetric(m) ? 1 : 0)

Köşegen 0, karşılıklar zıt işaretli → 1.

matrixIsBinary(m)

Tüm elemanlar 0/1 mi. Sonuc: True

Bütün hücreler yalnız 0 ya da 1 ise true, aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Bağlantı/komşuluk matrisi gibi 0-1 içermesi gereken yapıları doğrulamak için kullanılır.

CODESCRIPT
m = matrixNew(2, 2, 1)
plot(matrixIsBinary(m) ? 1 : 0)

Tüm hücreler 1 → 1 (evet).

matrixIsDiagonal(m)

Köşegen matris mi. Sonuc: False

Kare ve köşegen dışındaki bütün hücreleri 0 ise true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Köşegen değerleri herhangi bir sayı olabilir; koşul yalnız köşegen dışının 0 olmasıdır.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 5)
matrixSet(m, 1, 1, 7)
plot(matrixIsDiagonal(m) ? 1 : 0)

Yalnız köşegen dolu → 1 (evet).

matrixIsIdentity(m)

Birim matris mi. Sonuc: False

Kare, köşegeni 1 ve köşegen dışı hücreleri 0 ise true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Birim matris çarpımda etkisiz elemandır (m × birim = m). Bu denetim bir matrisin birim olup olmadığını söyler.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 1, 1, 1)
plot(matrixIsIdentity(m) ? 1 : 0)

Köşegen 1, gerisi 0 → 1 (evet).

matrixIsSquare(m)

Kare matris mi. Sonuc: True

Satır sayısı sütun sayısına eşitse true, değilse false.

m
matrix
Denetlenecek matris.

Not

Kare-gerektiren fonksiyonlardan (determinant, ters, kuvvet, iz) önce güvenlik denetimi olarak kullanılır.

CODESCRIPT
m = matrixNew(3, 3, 0)
plot(matrixIsSquare(m) ? 1 : 0)

3×3 kare → 1 (evet).

matrixIsStochastic(m)

Stokastik mi (satır toplamı 1). Sonuc: False

Her satırın toplamı 1 ise (küçük yuvarlama payıyla) true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Satır-stokastik denetimidir; kare olma şartı yoktur, yalnız satır toplamları 1 olmalıdır. Geçiş (Markov) matrislerini doğrulamak için kullanılır.

CODESCRIPT
m = matrixNew(2, 2, 0.5)
plot(matrixIsStochastic(m) ? 1 : 0)

Her satır 0.5+0.5 = 1 → 1 (evet).

matrixIsSymmetric(m)

Simetrik mi (m=mᵀ). Sonuc: True

Kare ve devriğine eşitse (m[i][j] = m[j][i]) true; aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Simetrik matris köşegene göre aynadır. Kovaryans ve korelasyon matrisleri simetriktir; öz-değer fonksiyonları bu tür matrisler için tasarlanmıştır.

CODESCRIPT
m = matrixNew(2, 2, 5)
plot(matrixIsSymmetric(m) ? 1 : 0)

Tüm hücreler eşit → simetrik → 1.

matrixIsTriangular(m)

Üçgensel mi (üst/alt). Sonuc: False

Kare ve alt-üçgen ya da üst-üçgen ise true (köşegenin bir yanı tümüyle 0); aksi hâlde false.

m
matrix
Denetlenecek matris.

Not

Üst-üçgende köşegenin altı, alt-üçgende üstü sıfırdır. İkisinden biri sağlanırsa üçgen kabul edilir.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 0, 1, 2)
matrixSet(m, 1, 1, 3)
plot(matrixIsTriangular(m) ? 1 : 0)

Köşegen altı 0 → üst-üçgen → 1.

matrixIsZero(m)

Tüm elemanlar sıfır mı. Sonuc: False

Bütün hücreler 0 ise true, biri bile sıfırdan farklıysa false.

m
matrix
Denetlenecek matris.

Not

Bir hesabın matrise değer yazıp yazmadığını denetlemek için kullanılabilir.

CODESCRIPT
m = matrixNew(2, 2, 0)
plot(matrixIsZero(m) ? 1 : 0)

Tüm hücreler 0 → 1 (evet).

matrixKron(m1, m2)

Kronecker çarpımı.

İki matrisin Kronecker çarpımı; boyutu (m1.satır×m2.satır) × (m1.sütun×m2.sütun) olan yeni matris.

m1
matrix
Soldaki matris.
m2
matrix
Sağdaki matris.

Not

m1'in her hücresi m2'nin tümüyle çarpılıp blok blok yerleştirilir. Sonuç ikisinin boyutlarının çarpımı kadar büyür.

CODESCRIPT
a = matrixNew(2, 2, 1)
b = matrixNew(2, 2, 1)
k = matrixKron(a, b)
plot(matrixRows(k))

2×2 ⊗ 2×2 → 4×4, satır sayısı 4.

matrixMax(m)

En büyük eleman.

Bütün hücreler içindeki en büyük değer; matris boşsa ya da matris değilse na.

m
matrix
En büyüğü aranan matris.

Not

Satır/sütun ayrımı yapmadan tüm hücreleri karşılaştırır.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 1, 1, 8)
plot(matrixMax(m))

Hücrelerden biri 8 → en büyük 8.

matrixMedian(m)

Tüm elemanların ortancası.

Bütün hücrelerin ortanca (medyan) değeri; hücre sayısı çiftse ortadaki iki değerin ortalaması. Boşsa na.

m
matrix
Ortancası alınacak matris.

Not

Tüm hücreler sıralanır, ortadaki değer alınır. Ortanca, aykırı değerlerden ortalamaya göre daha az etkilenir.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 0, 1, 2)
matrixSet(m, 1, 0, 3)
matrixSet(m, 1, 1, 4)
plot(matrixMedian(m))

1,2,3,4 → ortadaki ikisinin ortalaması 2.5.

matrixMin(m)

En küçük eleman.

Bütün hücreler içindeki en küçük değer; matris boşsa ya da matris değilse na.

m
matrix
En küçüğü aranan matris.

Not

Satır/sütun ayrımı yapmadan tüm hücreleri karşılaştırır.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, -5)
plot(matrixMin(m))

Hücrelerden biri -5 → en küçük -5.

matrixMode(m)

En sık eleman.

En sık yinelenen hücre değeri; birden fazla değer aynı sıklıktaysa en küçüğü. Boşsa na.

m
matrix
Tepe değeri aranan matris.

Not

Aynı sıklıkta birden çok değer varsa en küçük değer seçilir (kararlı, deterministik sonuç).

CODESCRIPT
m = matrixNew(2, 2, 1)
matrixSet(m, 0, 0, 5)
plot(matrixMode(m))

Üç adet 1, bir adet 5 → tepe değer 1.

matrixMult(a, b)

Matris çarpımı. b matris olabilir (yeni matris döner), skaler olabilir (her hücre b ile çarpılır, yeni matris döner) veya vektör/dizi olabilir (a'nın sütun sayısı b'nin uzunluğuna eşit olmalı, sonuç a'nın satır sayısı kadar elemanlı bir DİZİ döner). a HER ZAMAN matris olmalı.

b matrisse: a×b matris çarpımı (a.satır × b.sütun boyutunda yeni matris). b sayıysa: a ile aynı boyutta, her hücresi b ile çarpılmış yeni matris. b diziyse: a'nın satır sayısı kadar elemanlı yeni bir DİZİ (matris değil).

a
matrix
Soldaki matris (satır×orta). HER ZAMAN matris olmalı.
b
matrix|number|array
Sağdaki değer — matris (satır sayısı a'nın sütun sayısına eşit olmalı), sayı (skaler — matrisin her hücresi bununla çarpılır) veya dizi (uzunluğu a'nın sütun sayısına eşit olmalı — vektör çarpımı).

Not

Matris×matris gerçek matris çarpımıdır (hücre hücre değil): sonuç[i][j] = a'nın i. satırı ile b'nin j. sütununun nokta çarpımı. Matris×dizi aynı nokta-çarpımı mantığını satır başına uygular: sonuç[i] = a'nın i. satırı ile dizinin nokta çarpımı. Matris×sayı ise düz skaler çarpımdır.

Sınırlar

a HER ZAMAN matris olmalıdır — b skaler veya dizi olsa bile sıra ters çevrilemez (matrixMult(sayı, a) desteklenmiyor). İç boyutlar uymalı: matris×matris'te a'nın sütun sayısı b'nin satır sayısına, matris×dizi'de a'nın sütun sayısı dizinin uzunluğuna eşit olmalıdır — aksi halde hata verir. Çarpım sırası önemlidir (a×b ≠ b×a).

Gerçek matris çarpımıdır (hücre hücre değil): sonuç[i][j] = a'nın i. satırı ile b'nin j. sütununun nokta çarpımı.

CODESCRIPT
a = matrixNew(2, 2, 0)
matrixSet(a, 0, 0, 1)
matrixSet(a, 1, 1, 1)
b = matrixNew(2, 2, 5)
p = matrixMult(a, b)
plot(matrixGet(p, 0, 0))

Birim matris × b = b → [0,0] = 5.

matrixNew(row, column, start?)

Satır ve sütundan oluşan bir tablo kurar, bütün gözleri aynı başlangıç değeriyle dolar. İki boyutlu veri tutmak gerektiğinde kullanılır; tek boyut yetiyorsa dizi daha basittir.

satır×sütun boyutunda, tüm hücreleri başlangıç değerine eşit yeni bir matris.

row
number
Oluşturulacak matrisin satır sayısı; negatif verilirse 0'a çekilir.
column
number
Sütun sayısı; negatif verilirse 0'a çekilir.
start
number
Her hücrenin başlangıç değeri (isteğe bağlı). Verilmez ya da sayı değilse 0 kullanılır.

Not

Matris satır ve sütunlardan oluşan iki boyutlu sayı ızgarasıdır; diğer tüm matrix fonksiyonları bununla üretilen nesneyi bekler.

Ne zaman kullanılır

Bir hesaba başlamadan önce sabit boyutlu bir sayı ızgarası ayırmak için — ağırlık tablosu, geçiş matrisi, kovaryans birikimi gibi.

CODESCRIPT
m = matrixNew(2, 3, 0)
plot(matrixElementsCount(m))

2×3 = 6 hücreli boş matris.

CODESCRIPT
m = matrixNew(2, 2, 5)
plot(matrixSum(m))

Dört hücre de 5 → toplam 20.

matrixPinv(m)

Moore-Penrose sözde-ters.

Matrisin sözde-tersi (Moore-Penrose sol-ters); (mᵀm) tersi alınamıyorsa na.

m
matrix
Sözde-tersi alınacak matris.

Not

(mᵀm)⁻¹mᵀ ile hesaplanır; kare olmayan ya da tam-tersi olmayan matrislerde en-küçük-kareler çözümü verir. Kare ve tersi olan matriste sonuç normal tersle aynıdır.

Ne zaman kullanılır

Fazla-belirtilmiş (satır > sütun) doğrusal sistemleri en-küçük-kareler ile çözerken.

Sınırlar

Sütunları bağımlıysa (mᵀm tekil olur) sonuç üretilemez ve na döner; sonucu na() ile koruyun.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 2)
matrixSet(m, 1, 1, 4)
p = matrixPinv(m)
plot(matrixGet(p, 0, 0))

Köşegen 2 → sözde-ters köşegen 0.5.

matrixPow(m, n)

Matris kuvveti (kare).

Matrisin n. kuvveti (matris×matris çarpımı n kez); yeni matris.

m
matrix
Kuvveti alınacak kare matris.
n
number
Üs (tam sayı); negatifse 0 kabul edilir. 0 birim matris verir.

Not

Matrisi kendisiyle n kez çarpar (sıradan sayı üssü değil). n=0'da birim matris, n=1'de matrisin kendisi döner.

Sınırlar

Yalnız kare matris için tanımlıdır; kare değilse hata verir.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 0, 0, 2)
matrixSet(m, 1, 1, 3)
p = matrixPow(m, 2)
plot(matrixGet(p, 0, 0))

Köşegen 2 → kare 4.

matrixRank(m)

Matris rankı (Gauss eliminasyon).

Matrisin rankı (bağımsız satır/sütun sayısı); matris değilse 0.

m
matrix
Rankı hesaplanacak matris.

Not

Eleme ile hesaplanır. Rank, satır ya da sütun sayısından küçükse matriste bağımlılık (fazlalık) vardır ve tersi yoktur.

CODESCRIPT
m = matrixNew(2, 2, 5)
plot(matrixRank(m))

Bütün satırlar aynı → rank 1.

matrixRemoveCol(m, i?)

i. sütunu çıkarır (dizi döner). Sonuc: Arr(len=2, [1.0, 1.0])

Çıkarılan sütunun değerlerini taşıyan dizi; indeks sınır dışıysa boş dizi.

m
matrix
Sütunu çıkarılacak matris.
i
number
Çıkarılacak sütun indeksi.

Not

Sütunu matristen siler (sütun sayısı bir azalır) ve o sütunu dizi olarak döndürür. Yerinde değiştirir.

CODESCRIPT
m = matrixNew(2, 3, 0)
matrixSet(m, 0, 1, 5)
c = matrixRemoveCol(m, 1)
plot(arrayGet(c, 0))

Çıkarılan 1. sütunun ilk değeri 5.

matrixRemoveRow(m, i?)

i. satırı çıkarır (dizi döner). Sonuc: Arr(len=2, [1.0, 1.0])

Çıkarılan satırın değerlerini taşıyan dizi; indeks sınır dışıysa boş dizi.

m
matrix
Satırı çıkarılacak matris.
i
number
Çıkarılacak satır indeksi.

Not

Satırı matristen siler (satır sayısı bir azalır) ve o satırı dizi olarak döndürür. Yerinde değiştirir.

CODESCRIPT
m = matrixNew(3, 2, 0)
matrixSet(m, 1, 0, 9)
r = matrixRemoveRow(m, 1)
plot(arrayGet(r, 0))

Çıkarılan 1. satırın ilk değeri 9.

matrixReshape(m, row?, column?)

Matrisi yerinde yeniden boyutlandırır (aynı matrisi döndürür).

Aynı hücreleri yeni satır×sütun düzenine yerleştiren yeni matris.

m
matrix
Yeniden biçimlendirilecek matris.
row
number
Yeni satır sayısı.
column
number
Yeni sütun sayısı.

Not

Hücreler satır-öncelikli okunup yeni biçime doldurulur. Yeni boyut daha büyükse eksik hücreler 0 olur; daha küçükse fazla hücreler atılır. Kaynağı değiştirmez.

CODESCRIPT
m = matrixNew(2, 3, 4)
r = matrixReshape(m, 3, 2)
plot(matrixRows(r))

2×3 (6 hücre) → 3×2, satır sayısı 3.

matrixReverse(m)

Satır ve sütun sırasını ters çevirir.

Değer döndürmez (na); satır ve sütun sırasını yerinde tersine çevirir.

m
matrix
Tersine çevrilecek matris.

Not

Hem satırların hem de her satır içindeki hücrelerin sırasını ters çevirir; ilk hücre ile son hücre yer değiştirir (180° dönme etkisi). Yerinde değiştirir.

CODESCRIPT
m = matrixNew(1, 3, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 0, 2, 3)
matrixReverse(m)
plot(matrixGet(m, 0, 0))

[1,0,3] → ters [3,0,1], ilk hücre 3.

matrixRow(matrix, i)

i. satırı dizi olarak döner. Sonuc: Arr(len=2, [1.0, 1.0])

i. satırın bir kopyasını taşıyan dizi; indeks sınır dışıysa boş dizi.

matrix
matrix
Satırı alınacak matris.
i
number
Satır indeksi; 0 ilk satırdır.

Not

Dönen dizi bir kopyadır; onu değiştirmek asıl matrisi etkilemez. Boş sonuç arraySize ile 0 döner.

Ne zaman kullanılır

Bir satırın tüm değerlerini dizi fonksiyonlarıyla (arraySum, arrayAvg) işlemek için.

CODESCRIPT
m = matrixNew(2, 3, 4)
r = matrixRow(m, 0)
plot(arraySum(r))

0. satır [4,4,4] → toplam 12.

matrixRows(matrix)

Matrisin kaç satırı olduğunu verir. Döngü sınırı olarak ya da matrisin boş olup olmadığını anlamak için kullanılır.

Matristeki satır sayısı; matris değilse 0.

matrix
matrix
Ölçülecek matris.

Not

Satırlar üzerinde döngü kurmadan önce sınırı bilmek için kullanılır. Sütun sayısı için matrixCols.

CODESCRIPT
m = matrixNew(3, 2, 0)
plot(matrixRows(m))

3 satır.

matrixSet(matrix, i, j, value)

Matrisin belirli satır ve sütunundaki gözü değiştirir. Yeni matris üretmez, var olanı günceller. Satır ve sütun sıfırdan başlar.

Değer döndürmez (na); matrisi yerinde değiştirir.

matrix
matrix
Değiştirilecek matris.
i
number
Yazılacak satır indeksi.
j
number
Yazılacak sütun indeksi.
value
number
Hücreye konacak değer; sayı değilse 0 yazılır.

Not

Var olan bir hücreyi günceller; matrisi büyütmez. İndeks sınır dışıysa sessizce hiçbir şey yapmaz. Yeni satır/sütun eklemek için matrixAddRow/matrixAddCol kullanın.

Ne zaman kullanılır

matrixNew ile ayrılmış bir matrisin hücrelerini tek tek doldurmak için.

CODESCRIPT
m = matrixNew(2, 2, 0)
matrixSet(m, 1, 1, 7)
plot(matrixGet(m, 1, 1))

Sağ alt hücre 7 yapılır.

matrixSort(m, column?, ascending?)

Satırları sütuna göre sıralar (sütun verilmezse 0).

Değer döndürmez (na); matrisin satırlarını yerinde sıralar.

m
matrix
Sıralanacak matris.
column
number
Sıralama ölçütü sütun indeksi (isteğe bağlı, varsayılan 0).
ascending
bool
true → artan (küçükten büyüğe), false → azalan (isteğe bağlı, varsayılan artan).

Not

Satırlar, seçilen sütundaki değere göre bütün olarak yeniden dizilir (her satır kendi içinde bozulmaz). Sütun indeksi geçersizse hiçbir şey yapmaz.

Ne zaman kullanılır

Satırları bir ölçüte göre (ör. skor sütunu) sıralamak — en iyi/en kötü satırları öne almak için.

CODESCRIPT
m = matrixNew(2, 1, 0)
matrixSet(m, 0, 0, 5)
matrixSet(m, 1, 0, 1)
matrixSort(m, 0, true)
plot(matrixGet(m, 0, 0))

Artan sıralama → en küçük (1) başa gelir.

matrixSubmatrix(m, r1?, r2?, c1?, c2?)

Alt-matris (blok).

[r1, r2) satırları ve [c1, c2) sütunlarından oluşan yeni matris.

m
matrix
Alt matrisi alınacak matris.
r1
number
Başlangıç satırı (dahil).
r2
number
Bitiş satırı (hariç).
c1
number
Başlangıç sütunu (dahil).
c2
number
Bitiş sütunu (hariç).

Not

Bitiş indeksleri hariçtir (r2 ve c2 dahil değildir). Kaynağı değiştirmez; kesilen bölgenin kopyasını verir.

Ne zaman kullanılır

Büyük bir matrisin belirli bir bloğunu (pencere, alt-tablo) ayrı işlemek için.

CODESCRIPT
m = matrixNew(3, 3, 0)
matrixSet(m, 1, 1, 5)
s = matrixSubmatrix(m, 1, 2, 1, 2)
plot(matrixGet(s, 0, 0))

Ortadaki tek hücre (5) alınır.

matrixSum(matrix)

Tüm elemanların toplamı.

Bütün hücrelerin toplamı; matris değilse 0.

matrix
matrix
Toplanacak matris.

Not

Satır ve sütun ayrımı yapmadan tüm değerleri toplar. Boş matriste 0 verir.

CODESCRIPT
m = matrixNew(2, 2, 2.5)
plot(matrixSum(m))

Dört hücre 2.5 → toplam 10.

matrixSwapColumns(m, i, j)

İki sütunu yer değiştirir.

Değer döndürmez (na); i. ve j. sütunları yerinde yer değiştirir.

m
matrix
Sütunları değiştirilecek matris.
i
number
Birinci sütun indeksi.
j
number
İkinci sütun indeksi.

Not

İki sütunu bütün olarak takas eder. İndekslerden biri sınır dışıysa hiçbir şey yapmaz.

CODESCRIPT
m = matrixNew(1, 2, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 0, 1, 2)
matrixSwapColumns(m, 0, 1)
plot(matrixGet(m, 0, 0))

Sütunlar takas → [0,0] artık 2.

matrixSwapRows(m, i, j)

İki satırı yer değiştirir.

Değer döndürmez (na); i. ve j. satırları yerinde yer değiştirir.

m
matrix
Satırları değiştirilecek matris.
i
number
Birinci satır indeksi.
j
number
İkinci satır indeksi.

Not

İki satırı bütün olarak takas eder. İndekslerden biri sınır dışıysa hiçbir şey yapmaz.

CODESCRIPT
m = matrixNew(2, 1, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 1, 0, 2)
matrixSwapRows(m, 0, 1)
plot(matrixGet(m, 0, 0))

Satırlar takas → [0,0] artık 2.

matrixTrace(matrix)

Köşegen toplamı (iz).

Ana köşegen (i==j) hücrelerinin toplamı; matris değilse 0.

matrix
matrix
İzi alınacak matris.

Not

Kare olmayan matriste kısa kenar kadar köşegeni toplar. İz, matrisin köşegen enerjisini tek sayıya indirir.

CODESCRIPT
m = matrixNew(3, 3, 0)
matrixSet(m, 0, 0, 1)
matrixSet(m, 1, 1, 2)
matrixSet(m, 2, 2, 3)
plot(matrixTrace(m))

Köşegen 1+2+3 = 6.

matrixTranspose(matrix)

Devrik (yeni matris).

Satır ve sütunları yer değiştirmiş yeni matris (sütun×satır boyutunda).

matrix
matrix
Devriği alınacak matris.

Not

Kaynağı değiştirmez, yeni matris döner. i. satır j. sütun, çıktıda j. satır i. sütun olur.

Ne zaman kullanılır

Satır-vektörlerini sütun-vektörlerine çevirmek ya da çarpımda boyut uydurmak için.

CODESCRIPT
m = matrixNew(2, 3, 0)
t = matrixTranspose(m)
plot(matrixRows(t))

2×3 → devrik 3×2, satır sayısı 3.