Soru sorFor döngüsü ile bir matrisin belirli elemanlarından oluşan matrislerini çarparak farklı bir matriste yan yana yazdırmak
hayniko tarafından 4 yıl önce soruldu

Merhaba arkadaşlar,
for i=1:13:(13*elemansayisi)
Kiuf=Tiuf(2:13,i:i+5)*Kiuft(2:7,i:i+5)*Tiuftranspozlari(1:6,i:i+11)
end
elimde var olan Tiuf, Kiuft ve Tiuftranspozlari matrislerinin içerisindeki belli satırı ve sütunundaki elemanlardan oluşan matrislerini çarptırarak Kiuf adlı matriste yan yana yazdırmak istiyorum ancak bunu nasıl yapacağım veya yapılabilirliğini bilmiyorum. Yukarıdaki gibi yazdım ancak sorun Kiuf matirisinde tek bir matris elde ediyorum ama ben diğer matrislerin for döngüsüne girip Kiuf matrisinde 12×12'lik kaç tane matris oluyorsa onların yan yana yazılmasını istiyorum.(Not: Çarpımın sonucu 12×12'lik matris oluyor)

4 Cevap
sayginer Yönetici tarafından 4 yıl önce cevaplandı
hayniko tarafından 4 yıl önce cevaplandı

Gördüm ancak tam olarak bana yanıt vermedi. Örnek vermek gerekirse elimizde 3 adet 5×30 boyutlarında a matrisi, b matrisi ve c matrisleri olsun. Ben bu matrislerin her birinde önce her birinin ilk 5 satır ve 5 sütunundan oluşan 5×5 lik matrislerin matris çarpımını farklı bir d matrisinde ilk 5×5 lik kısma yazsın daha sonra yine for döngüsüne girip baştaki a b c matrislerinin 10.-15. sütun aralığı ve aynı 1-5 satır aralığından oluşan matrisleri çarpıp yine d matrisinin 1.-5. satır aralığı 10.-15. sütun aralığında yan yana yazsın ve devam etsin istiyorum. Bu durumda 3 tane matrisin çarpımı olduğu için, çarpım kuralı gereği önce ilk 2 matrisi çarpıp sonucu bulup sonra 3. ile çarptırabilmek için 2 aşamada mı yapmak gerekir orada biraz sorun yaşadım açıkçası.
 

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Tek aşamada da yapabilirsiniz. Önemli olan işlem yapacağınız satır ve sütün numaralarınu düzgün bir şekilde yazabilmek. Aşağıda size örnek bir kod bırakıyorum. satirNo ve sutunNo değişkenleri ile oynayarak a,b ve c matrislerinden hangi kısımların seçileceğini belirleyebilirsiniz. Üç matrisin çarpımını yine d matrisine koyabilirsiniz. Takılırsanız lütfen sorun.

a = randi([1,20], 4)
b = randi([1,20], 4)
c = randi([1,20], 4)


satirNo = 1:2; sutunNo = 1:2;
d(satirNo,sutunNo) = a(satirNo,sutunNo)*b(satirNo,sutunNo)*c(satirNo,sutunNo)
hayniko tarafından 4 yıl önce cevaplandı

Çok teşekkür ederim :)