在一个matlab的问题了,苦恼了两天,总算是把问题解决了,
我采用flann进行查找时,总是报错,说是flann.dll内部出错,需要调试源码。
dataset=rand(700,10000);
testset=rand(700,1);
% build_params.target_precision=0.9;
% build_params.build_weight=1;
% build_params.memory_weight=0;
build_params.algorithm = 'kdtree';
build_params.trees = 8;
build_params.checks=128;
[index,parameters]=flann_build_index(single(dataset),build_params);
result=flann_search(index,single(testset),10000,parameters); % 总在此行报错,提示需要matlab重启
flann_free_index(index);
经过痛苦的尝试后,只要提前做一下类型转换,就可以了。
testset = single(testset);
result=flann_search(index,testset,10000,parameters);
这是一个非常让我迷惑的问题,按理说single(testset),做为参数传入,不应该有任何问题。难道是matlab的编译器的问题?
就这个问题,我向matlab提交了问题邮件。
我只能说,这个蠢问题让我很苦恼,因为耽误了大量时间。