3 回答

TA貢獻1852條經驗 獲得超7個贊
Matlab不支持哈希表,
為了加快查找速度,您可以刪除find和使用LOGICAL INDEXING。
arr{array_of_ks==k} = <image filtered with k-th Gaussian>
要么
arr(:,:,array_of_ks==k) = <image filtered with k-th Gaussian>
但是,根據我在Matlab上的所有經驗,我從來沒有遇到過瓶頸。
為了加快您的特定問題的速度,建議您使用增量過濾
arr{i} = GaussFilter(arr{i-1},sigma*s^(array_of_ks(i)) - sigma*s^(array_of_ks(i-1)))
假設array_of_ks按升序排序,GaussFilter會基于方差(當然使用2個1D濾鏡)來計算濾鏡掩碼的大小,或者您可以在傅立葉空間中進行濾鏡,這對于大圖像以及方差為等距排列(很可能并非如此)。

TA貢獻2012條經驗 獲得超12個贊
考慮使用MATLAB的地圖類:container.Map。這里是一個簡短的概述:
創建:
>> 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
抬頭:
x = rainfallMap('Jan');
分配:
rainfallMap('Jan') = 0;
加:
rainfallMap('Total') = 999;
去掉:
rainfallMap.remove('Total')
檢查:
values = rainfallMap.values;
keys = rainfallMap.keys;
sz = rainfallMap.size;
確認碼:
if rainfallMap.isKey('Today')
...
end
添加回答
舉報