mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
moved rtabmap-ros-pkg project in this project
git-svn-id: http://rtabmap.googlecode.com/svn/branches/0.3/rtabmap@52 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
29
Matlab/updateDictionary.m
Normal file
29
Matlab/updateDictionary.m
Normal file
@@ -0,0 +1,29 @@
|
||||
function DU = updateDictionary(Dict, Sign)
|
||||
%UPDATEDICTIONARY Update the dictionary with the new signature (place)
|
||||
% DU = updateDictionary(Dict, Sign)
|
||||
%
|
||||
% DU = dictionary updated
|
||||
% dictionary = [wordId1 SignRefIds...; wordId2 SignRefIds...; ...]
|
||||
% sign = [signId WordRefIds...]
|
||||
|
||||
signId = Sign(1);
|
||||
Sign = Sign(Sign~=0);
|
||||
for i=2:length(Sign)
|
||||
indexWord = [];
|
||||
if isempty(Dict) ~= 1
|
||||
indexWord = find(Dict(:,1) == Sign(i),1);
|
||||
end
|
||||
if isempty(indexWord) == 1
|
||||
Dict(size(Dict,1)+1,1) = Sign(i); %Word id
|
||||
Dict(size(Dict,1),2) = signId; %Signature id ref
|
||||
else
|
||||
ii = 1:length(Dict(indexWord,1:end));
|
||||
indexesZero = ii(Dict(indexWord,1:end) == 0);
|
||||
if isempty(indexesZero)
|
||||
Dict(indexWord, size(Dict,2)+1) = signId;
|
||||
else
|
||||
Dict(indexWord, indexesZero(1)) = signId;
|
||||
end
|
||||
end
|
||||
end
|
||||
DU = Dict;
|
||||
Reference in New Issue
Block a user