Soru sorVeriler için döngü ve alt matrisler oluşturmak
BlackPearl tarafından 6 yıl önce soruldu

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

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

Bu bahsettiğiniz veriler Workspace'te bulunan variable v.s mi?

BlackPearl tarafından 6 yıl önce cevaplandı

Evet, workspace de bulunan verilerin belli bloklar halinde (5*5, 6*6) sıralı olarak ortalamalarını bulmam gerekiyor

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

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. 

  1. Elinizde kaça kaçlık bir matris var?
  2. Bu matrisi alt matrislere bölüp bunların mı ortalamalarını almak istiyorsunuz?
BlackPearl tarafından 6 yıl önce cevaplandı

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. 

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

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
BlackPearl tarafından 6 yıl önce cevaplandı

Çok teşekkür ederim, oldukça faydalı oldu