Matlabda image processing kullanarak, fuzzy logic ile tahmin yapmaya çalışıyorum fakat bir problemim var. Elimde çok fazla veri olduğu için bu verileri aktaramıyorum. Bu sebeple verileri 5*5 ya da 6*6 lık ortalamalar alınacak şekilde gruplandırmak istiyorum. Bunu yapmak için bir döngü oluşturmam gerektiğini biliyorum fakat bunu bir türlü yapamadım. Şimdiden çok teşekkür ederim
Evet, workspace de bulunan verilerin belli bloklar halinde (5*5, 6*6) sıralı olarak ortalamalarını bulmam gerekiyor
Verdiğiniz bilgiye göre önerebileceğim şey şudur: MATLAB ortamında bir matsin m. satir n. sütunundaki elemente matrisadi(m,n) şeklinde ulaşabilirsiniz. Eğer bu m ve n değerlerini for döngüsü ile tanımlarsanız sırası ile m+1 ve/veya m+1 satırlarını yazdırabilirsiniz.
- Elinizde kaça kaçlık bir matris var?
- Bu matrisi alt matrislere bölüp bunların mı ortalamalarını almak istiyorsunuz?
Benim 180*265 adet verim var. Bu verileri görüntü işlemede fuzzy kullanarak birleştirme için kullanacağım fakat veri sayısı çok fazla olduğu için yapamıyorum. Ben de veri sayısını düşürmek için dataları belli bloklar halinde ortalalamaları alınmış şekilde hesaplamak istiyorum. Ortalamaları alacak bir kod döngü içerisinde yazılabilirse işime yarayacağını düşünüyorum.
Aşağıda 10'a 10'luk bir matrisi 2'ye 2'lik alt matrislere bölerek bu her 2'ye 2'lik matrisin ortalamasının nasıl alındığını gösteren bir örnek bulabilirsiniz. Buradaki önemli nokta 5e5 ve 6ya6 durumu için i ve j indislerini uygun bir şekilde yazmak olacak.
b = randi([1 10], 10, 10) %Bolmek istedigimiz matris for j = 1:2:10 for i=1:2:10 parca = b(i:i+1,j:j+1) %Matrisi bolelim ortalama = mean(mean(b(i:i+1,j:j+1))) %Tum elementleri toplar element sayisina boler end end