Soru sorBelli Bir Sayıdan Küçük Değerleri Yazdırma
haritaci07 tarafından 5 yıl önce soruldu

Merhaba. Uzaklık değerlerinden oluşan 488×111 boyutlu bir matris var ve her sütun için uzaklık değeri 5000 metreden küçük mesafeleri daha sonra başka bir işleme sokacak şekilde yazdırmam gerekiyor. Kodu nasıl yazmam gerektiğini tam olarak oturtamıyorum. Yardımcı olur musunuz?

3 Cevap
En iyi cevap
Caglar Yönetici tarafından 5 yıl önce cevaplandı

Evet döngü kurup işlemler döngünün  içinde yapilabilir:
 
for satir=1:1:488
for sutun=1:1:111
if uzakliklar(satir,sutun) < 5000 
%yapmak istediginiz islemler
end
end
end
 
İşlemleri şimdi yapmak istemiyor, sadece 5000 kuralini saglayanlari tutmak istiyorsanız, logical array olarak mesafeler < 5000 yazabilirsiniz. Logical array degil de indis olarak tutmak da şöyle olabilir:

 
 

Caglar Yönetici tarafından 5 yıl önce cevaplandı

Anladığım kadarıyla, bir sütunda uzaklık değeri var ama diğer sütunlarda farklı değerler var?
Böyle durumlarda, mantıksal operatörlerle seçim yapabilirsiniz. Mesela, uzaklık değer ikinci sütundaysa ve uzaklık değeri 5000'den büyük olan satırlardan oluşan yeni bir matris oluşturmak istiyorsam;
secim=butun_elemanlar(:,2)>5000;
secilmis_elemanlar=butun_elemanlar(secim,:)
butun_elemanlar(:,2)>5000 kısmı, butun_elemanlar matrisinde ikinci sutun degeri 5000'den buyuk olanlar için 1 (True), kucuk olanlar için 0 (False) degeri içeren bir vektor döndürür. 

haritaci07 tarafından 5 yıl önce cevaplandı

Şöyle izah edeyim, matristeki elemanlar noktaların birbirine olan mesafesini ifade ediyor. Örneğin birinci gruptaki üçüncü noktanın, diğer gruptaki dördüncü noktaya olan uzaklığı gibi. Ve her sütundaki uzaklık değerlerini belli bir mesafeye kadar sınırlandırmam gerekiyor. Yani satır olarak değil sütun olarak çalışmam gerekiyor.
Bu kodu uyguladığımda bunu bütün sütunlara uygulamak için döngü oluşturmam gerekiyor doğru mudur?