Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Matrislerle çalışmak
#1
Merhaba arkadaşlar, matrisler ile ilgili bir konuda yardıma ihtiyacım var. Elimde 2 matris var biri 3x3 diğeri 9x9 mesela, 
amacım; 9x9 matrisin içinde 3x3 matris nerelerde kullanılmış (x ve y koordinatları yani) ?
Örneklemek gerekirse;

5 3 2
4 6 8
8 1 7
matrisi

1 2 3 8 4 5 4 5 3
2 3 5 8 5 3 2 1 1
1 2 2 2 4 6 8 2 3
2 3 4 5 8 1 7 0 0
0 0 0 5 3 2 3 3 5
2 2 2 4 6 8 1 2 3
4 5 6 8 1 7 4 5 3
4 1 2 5 6 8 4 6 9
7 5 6 3 2 1 4 5 6 

bana diyecek ki  
1. kullanım : 5-2 (x:5 y:2 den başlıyor)
2. kullanım : 4-5 (x:4 y:5 ten başlıyor)
gibi,
tabi bendeki bulunacak matris 10x3, aranacak matris 700x300 gibi olacak.
WWW
Cevapla
#2
Merhaba,

Ben olsam 3x3 matrisin ilk elemanını, yani "5"i 9x9'da aratırım, karşılaştığım sütunun (X) pozisyonunu ve satırın (Y) değerini bir değişkene atarım, sonrasında;

satır bazında X, sütun bazında Y değerini kullanarak 9x9'un ilgili kısmında 3x3 kadarlık bir kıyaslama yaparım.

Eşleşme varsa o kısım ile ilgili yapacağım şeyleri yaptıktan sonra X + Matris genişliği kadar ilerler ve "5"i aramaya devam ederim. Bu işlem 9x9 matrisin sonu - 3'e gelene kadar devam ettiririm.

Yani tarayacağım alan 9x9 - 3x3 = 6x6'lık bir alan olur
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#3
Aslında bir çalışma yapmaya başladım hocam,
9x9 matrisin her satırında aranacak matrisin ilk elemanını aratıyorum, bulunca direk 9x9 un sonraki 2 değerini de kontrol ediyorum, eğer denkleşirse, bu sefer de bir alt satırında 3x3 ün 2. satırını kontol ediyorum, eğer bunuda bulursa 3x3 ün 3. satırını bir alt satırda arıyorum, bulursa ilk x,y değerim ve aranan matrisin son elemanının x,y değerleri elime geçmiş oluyor, sonrasında kaldığım yerden aynı şekilde devam ediyorum, dediğiniz gibi ilk elemanı bulduğum zaman diğerlerini ilgili yerlerde kontrol etmem yetiyor. Fakat bunun belli bir algoritması varmıdır onu merak etmiştim. Zira benim arananan alanım 1000*800 gibi eleman içeriyor, aranacak alanım ise minimum 5x5 alan içeriyor.

Kısaca bmp içinde bmp arıyorum hocam, kaç tane bulursam kare içine almam gerekiyor.
WWW
Cevapla
#4
Bence TArray.BinarySearch çok işinize yaracaktır.

Yardım dokümanında şöyle bir not varmış yeni fark ettim Sad
Note: BinarySearch requires that the array be sorted.
There's no place like 127.0.0.1
WWW
Cevapla
#5
Binary Search'ın bu konuda nasıl işe yarayacağını anlamadım? Fotoğraf verisi doğası gereği zaten sıralanmamış olacaktır, sıralansa bu sefer sıralı hali işimize yaramaz?
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla
#6
(24-06-2019, Saat: 15:14)uparlayan Adlı Kullanıcıdan Alıntı: Merhaba,

Ben olsam 3x3 matrisin ilk elemanını, yani "5"i 9x9'da aratırım, karşılaştığım sütunun (X) pozisyonunu ve satırın (Y) değerini bir değişkene atarım, sonrasında;

satır bazında X, sütun bazında Y değerini kullanarak 9x9'un ilgili kısmında 3x3 kadarlık bir kıyaslama yaparım.

Eşleşme varsa o kısım ile ilgili yapacağım şeyleri yaptıktan sonra X + Matris genişliği kadar ilerler ve "5"i aramaya devam ederim. Bu işlem 9x9 matrisin sonu - 3'e gelene kadar devam ettiririm.

Yani tarayacağım alan 9x9 - 3x3 = 6x6'lık bir alan olur

ilk eleman değerini bulup 9 ar arttırmak bencede en mantıklı çözüm.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#7
(24-06-2019, Saat: 21:03)uparlayan Adlı Kullanıcıdan Alıntı: Binary Search'ın bu konuda nasıl işe yarayacağını anlamadım? Fotoğraf verisi doğası gereği zaten sıralanmamış olacaktır, sıralansa bu sefer sıralı hali işimize yaramaz?

Satır satır arama yapmamızı sağlayacaktı. 
Küçük matrisin satırları, büyük matrisin satırları içinde aranabilecekti.
There's no place like 127.0.0.1
WWW
Cevapla
#8
Normalde bu olay matristeki sub matris aramadan geçiyor farklı dillerde bazı çalışmalar var. Delphide pek bulamadım

buradaki örnek ile belki ilerleyebilirsiniz en azından nasıl başlayabilirsiniz ve ne kullanılır öğrenebilirsiniz

https://stackoverflow.com/questions/1052...x-n-matrix

Kolay gelsin
Cevapla
#9
http://citeseerx.ist.psu.edu/viewdoc/dow...1&type=pdf
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Büyük Sayılarla Çalışmak narkotik 12 7.469 02-09-2018, Saat: 23:57
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi