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
添加回答
举报