mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@453 f169173b-cf89-36c8-b27e-44dbe73f0c83
36 lines
1.3 KiB
Matlab
36 lines
1.3 KiB
Matlab
close all
|
|
clear all
|
|
|
|
% Test AvpdCore::BayesFilter::computePosterior()
|
|
prior = 1;
|
|
predictionNP = 0.9;
|
|
predictionLC = [0.1 0.24 0.18 0.18 0.1 0.1 0.04 0.04 0.01 0.01];
|
|
likelihood = [];
|
|
nIter = 10;
|
|
|
|
computePosteriorResult = zeros(nIter);
|
|
for i=1:nIter
|
|
likelihood = [likelihood; 1];
|
|
prediction = generatePrediction(predictionNP, predictionLC, length(likelihood)-1)
|
|
if i==1
|
|
prior = 1;
|
|
%elseif i>2
|
|
% prior = [prior;prior(end)]; %use the same probability as the previous neighbor
|
|
else
|
|
prior = [prior;0];
|
|
end
|
|
prior = likelihood .* (prediction' * prior);
|
|
prior = prior/sum(prior); %Normalize
|
|
computePosteriorResult(1:length(prior),i) = prior;
|
|
end
|
|
|
|
%Adjust results (don't use float to compare)
|
|
computePosteriorResult = floor(computePosteriorResult*1000)';
|
|
disp('computePosteriorResult=');
|
|
disp(computePosteriorResult);
|
|
r = sum(sum((computePosteriorResult - [1000,0,0,0,0,0,0,0,0,0;900,99,0,0,0,0,0,0,0,0;820,117,62,0,0,0,0,0,0,0;756,111,82,50,0,0,0,0,0,0;704,103,84,67,40,0,0,0,0,0;663,96,82,69,54,32,0,0,0,0;631,90,79,69,58,44,26,0,0,0;604,84,76,68,58,48,36,21,0,0;583,79,73,66,58,49,40,30,17,0;567,74,69,64,58,50,41,33,25,14;]) ~= 0));
|
|
if r ~= 0
|
|
error('computePosteriorResult is not valid!')
|
|
end
|
|
|