Matrisler
51 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Eleman-bazlı toplama (yeni matris).
Aynı konumdaki hücreleri toplanmış yeni matris.
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.
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).
i. konuma sütun ekler.
Değer döndürmez (na); matrisi yerinde bir sütun büyütür.
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.
m = matrixNew(2, 1, 1) matrixAddCol(m, 1, arrayFrom(7, 8)) plot(matrixGet(m, 0, 1))
Sona eklenen sütunun ilk hücresi 7.
i. konuma satır ekler.
Değer döndürmez (na); matrisi yerinde bir satır büyütü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.
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.
Tüm elemanların ortalaması.
Bütün hücrelerin aritmetik ortalaması; matris boşsa ya da matris değilse na.
Not
Toplamı hücre sayısına böler. Boş matriste na döner (0 değil); sonucu na() ile koruyun.
m = matrixNew(2, 2, 4) plot(matrixAvg(m))
Tüm hücreler 4 → ortalama 4.
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.
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.
m = matrixNew(3, 2, 5) c = matrixCol(m, 1) plot(arraySize(c))
1. sütun 3 elemanlı.
Sütun sayısı.
Matristeki sütun sayısı; matris değilse 0.
Not
Sütunlar üzerinde döngü sınırı için kullanılır. matrixColumns aynı işi yapan ikinci addır.
m = matrixNew(3, 2, 0) plot(matrixCols(m))
2 sütun.
Sütun sayısı (matrixCols ile aynı).
Matristeki sütun sayısı; matris değilse 0.
Not
matrixCols ile birebir aynı sonucu verir — okunurluk için sağlanan ikinci addır.
m = matrixNew(3, 4, 0) plot(matrixColumns(m))
4 sütun.
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.
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.
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.
Matrisin kopyası.
Kaynağın bağımsız (derin) bir kopyası; matris değilse boş 0×0 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.
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.
Determinant (kare matris).
Matrisin determinantı (tek sayı); kare değilse ya da matris değilse na. Tekil (tersi olmayan) matriste 0 döner.
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.
m = matrixNew(2, 2, 0) matrixSet(m, 0, 0, 2) matrixSet(m, 1, 1, 3) plot(matrixDet(m))
Köşegen 2,3 → determinant 6.
Eleman-bazlı çıkarma (matris veya skaler).
m1'den m2'nin çıkarıldığı yeni matris.
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.
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).
Ö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.
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.
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.
Özvektör matrisi (simetrik; Jacobi).
Sütunları öz-vektörler olan yeni matris; kare değilse ya da boşsa boş 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.
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ı.
Eleman sayısı (satır×sütun).
Toplam hücre sayısı (satır × sütun); matris değilse 0.
Not
İstatistik fonksiyonlarına (matrixAvg, matrixMedian) girmeden önce matrisin dolu olup olmadığını denetlemek için kullanışlıdır.
m = matrixNew(2, 3, 0) plot(matrixElementsCount(m))
2×3 = 6 hücre.
Tüm elemanları değerle doldurur.
Değer döndürmez (na); matrisin bütün hücrelerini yerinde değere eşitler.
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.
m = matrixNew(2, 2, 0) matrixFill(m, 3) plot(matrixSum(m))
Dört hücre 3 → toplam 12.
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).
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.
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.
Ters matris (tekilse boş).
Matrisin tersi (yeni matris); kare değilse ya da tekil (tersi yok) ise na.
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.
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.
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.
Not
Karşı köşegen sağ-üstten sol-alta uzanan köşegendir; bu denetim yalnız o köşegenin dolu olabileceğini doğrular.
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).
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.
Not
Ters-simetrik matriste köşegen zorunlu olarak 0'dır (çünkü m[i][i] = -m[i][i] ancak 0 için geçerlidir).
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.
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.
Not
Bağlantı/komşuluk matrisi gibi 0-1 içermesi gereken yapıları doğrulamak için kullanılır.
m = matrixNew(2, 2, 1) plot(matrixIsBinary(m) ? 1 : 0)
Tüm hücreler 1 → 1 (evet).
Köşegen matris mi. Sonuc: False
Kare ve köşegen dışındaki bütün hücreleri 0 ise true; aksi hâlde false.
Not
Köşegen değerleri herhangi bir sayı olabilir; koşul yalnız köşegen dışının 0 olmasıdır.
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).
Birim matris mi. Sonuc: False
Kare, köşegeni 1 ve köşegen dışı hücreleri 0 ise true; aksi hâlde false.
Not
Birim matris çarpımda etkisiz elemandır (m × birim = m). Bu denetim bir matrisin birim olup olmadığını söyler.
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).
Kare matris mi. Sonuc: True
Satır sayısı sütun sayısına eşitse true, değilse false.
Not
Kare-gerektiren fonksiyonlardan (determinant, ters, kuvvet, iz) önce güvenlik denetimi olarak kullanılır.
m = matrixNew(3, 3, 0) plot(matrixIsSquare(m) ? 1 : 0)
3×3 kare → 1 (evet).
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.
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.
m = matrixNew(2, 2, 0.5) plot(matrixIsStochastic(m) ? 1 : 0)
Her satır 0.5+0.5 = 1 → 1 (evet).
Simetrik mi (m=mᵀ). Sonuc: True
Kare ve devriğine eşitse (m[i][j] = m[j][i]) true; aksi hâlde false.
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.
m = matrixNew(2, 2, 5) plot(matrixIsSymmetric(m) ? 1 : 0)
Tüm hücreler eşit → simetrik → 1.
Üç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.
Not
Üst-üçgende köşegenin altı, alt-üçgende üstü sıfırdır. İkisinden biri sağlanırsa üçgen kabul edilir.
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.
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.
Not
Bir hesabın matrise değer yazıp yazmadığını denetlemek için kullanılabilir.
m = matrixNew(2, 2, 0) plot(matrixIsZero(m) ? 1 : 0)
Tüm hücreler 0 → 1 (evet).
Kronecker çarpımı.
İki matrisin Kronecker çarpımı; boyutu (m1.satır×m2.satır) × (m1.sütun×m2.sütun) olan yeni 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.
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.
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.
Not
Satır/sütun ayrımı yapmadan tüm hücreleri karşılaştırır.
m = matrixNew(2, 2, 0) matrixSet(m, 1, 1, 8) plot(matrixMax(m))
Hücrelerden biri 8 → en büyük 8.
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.
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.
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.
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.
Not
Satır/sütun ayrımı yapmadan tüm hücreleri karşılaştırır.
m = matrixNew(2, 2, 0) matrixSet(m, 0, 0, -5) plot(matrixMin(m))
Hücrelerden biri -5 → en küçük -5.
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.
Not
Aynı sıklıkta birden çok değer varsa en küçük değer seçilir (kararlı, deterministik sonuç).
m = matrixNew(2, 2, 1) matrixSet(m, 0, 0, 5) plot(matrixMode(m))
Üç adet 1, bir adet 5 → tepe değer 1.
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).
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ı.
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.
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.
m = matrixNew(2, 3, 0) plot(matrixElementsCount(m))
2×3 = 6 hücreli boş matris.
m = matrixNew(2, 2, 5) plot(matrixSum(m))
Dört hücre de 5 → toplam 20.
Moore-Penrose sözde-ters.
Matrisin sözde-tersi (Moore-Penrose sol-ters); (mᵀm) tersi alınamıyorsa na.
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.
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.
Matris kuvveti (kare).
Matrisin n. kuvveti (matris×matris çarpımı n kez); yeni matris.
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.
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.
Matris rankı (Gauss eliminasyon).
Matrisin rankı (bağımsız satır/sütun sayısı); matris değilse 0.
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.
m = matrixNew(2, 2, 5) plot(matrixRank(m))
Bütün satırlar aynı → rank 1.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
m = matrixNew(2, 3, 4) r = matrixRow(m, 0) plot(arraySum(r))
0. satır [4,4,4] → toplam 12.
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.
Not
Satırlar üzerinde döngü kurmadan önce sınırı bilmek için kullanılır. Sütun sayısı için matrixCols.
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.
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.
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.
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.
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.
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.
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.
Tüm elemanların toplamı.
Bütün hücrelerin toplamı; matris değilse 0.
Not
Satır ve sütun ayrımı yapmadan tüm değerleri toplar. Boş matriste 0 verir.
m = matrixNew(2, 2, 2.5) plot(matrixSum(m))
Dört hücre 2.5 → toplam 10.
İki sütunu yer değiştirir.
Değer döndürmez (na); i. ve j. sütunları yerinde yer değiştirir.
Not
İki sütunu bütün olarak takas eder. İndekslerden biri sınır dışıysa hiçbir şey yapmaz.
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.
İki satırı yer değiştirir.
Değer döndürmez (na); i. ve j. satırları yerinde yer değiştirir.
Not
İki satırı bütün olarak takas eder. İndekslerden biri sınır dışıysa hiçbir şey yapmaz.
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.
Köşegen toplamı (iz).
Ana köşegen (i==j) hücrelerinin toplamı; matris değilse 0.
Not
Kare olmayan matriste kısa kenar kadar köşegeni toplar. İz, matrisin köşegen enerjisini tek sayıya indirir.
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.
Devrik (yeni matris).
Satır ve sütunları yer değiştirmiş yeni matris (sütun×satır boyutunda).
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.
m = matrixNew(2, 3, 0) t = matrixTranspose(m) plot(matrixRows(t))
2×3 → devrik 3×2, satır sayısı 3.