MATLAB Hash tabloları
MATLAB karma tablo için herhangi bir destek var mı?
Bazı arka plan
Görüntünün ölçek-uzayı gösterimi gerektiren bir Matlab bir sorun üzerinde çalışıyorum. Bunu yapmak için ben 2 boyutlu varyans Gaussian filtre bazı dizi k
*9.* oluşturmak, sonra sıra ile her bir görüntü filtrelemek için kullanıyorum. Şimdi, filtre görüntü için k
eşleme çeşit istiyorum.
Eğer k
her zaman bir tam sayı olsaydı, sadece 3 boyutlu bir dizi gibi oluşturmak istiyorum:
arr[k] = <image filtered with k-th guassian>
Ancak, k
mutlaka bir tam sayı değil, bu yüzden bunu yapamam. Yapmayı düşündüğüm k
s dizisi gibi tutuyordu:
arr[find(array_of_ks_ = k)] = <image filtered with k-th guassian>
Çok iyi ilk başta görünüyor k
20 veya 30 değerleri ile potansiyel olarak birkaç bin kere ve bu performans zarar verecek diye korkuyorum bu arama yapacağım dışında düşündüm.
Eğer O(1) yerine O arama zamanı(n) var ki bir çeşit karma bir tablo ile bu işi daha iyi hizmet etmiş olurdum diye merak ediyorum.
Şimdi, biliyorum bunu yapmamalıyım optimize zamanından önce ve olmayabilirim var bu sorun, ama unutmayın, bu sadece arka planı ve bazı durumlarda bu gerçekten en iyi çözüm ne olursa olsun, ister en iyi çözüm içinbenimsorun.
CEVAP
Düşünün C = göster sınıfı kullanarak: containers.Map. Burada kısa bir genel bakış:
Oluşturma:
>> keys = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', ... 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Annual'}; >> values = {327.2, 368.2, 197.6, 178.4, 100.0, 69.9, ... 32.3, 37.3, 19.0, 37.0, 73.2, 110.9, 1551.0}; >> rainfallMap = containers.Map(keys, values) rainfallMap = containers.Map handle Package: containers Properties: Count: 13 KeyType: 'char' ValueType: 'double' Methods, Events, Superclasses
Arama:
x = rainfallMap('Jan');
Ata:
rainfallMap('Jan') = 0;
Ekleyin:
rainfallMap('Total') = 999;
Kaldırın:
rainfallMap.remove('Total')
İnceleyin:
values = rainfallMap.values; keys = rainfallMap.keys; sz = rainfallMap.size;
Kontrol tuşu:
if rainfallMap.isKey('Today') ... end
Hash tabloları VS ilişkilendirilebilir...
Hash Tabloları üzerinde İkili Arama Ağ...
Bağlı Listeler, ikili Ağaçlar vs vs Ha...
Nasıl haşat hash tabloları tanımlamak ...
Nasıl SQLite tabloları katılırken bir ...