knn.m
来自「matlab 源码 KNN classification」· M 代码 · 共 36 行
M
36 行
function class = knn(query,ref_vect,ref_label,k)
% ---------------------------------------
% query : query point
% ref_vect : reference vectors
% ref_label : labels of reference vectors
% k : k-nearest
% class : matched class
% ---------------------------------------
[ref_num,dim] = size(ref_vect);
class_num = max(ref_label);
% Calculate Eculid distances
for i=1:ref_num
dis(i) = norm(ref_vect(i,:)-query);
end
% Sort reference vectors in nearest order
[tmp,index] = sort(dis);
% Extract first k nearest labels
if k > length(index)
k = length(index);
end
label = ref_label(index(1:k));
% Count labels
class_cnt = zeros(1,class_num);
for i=1:k
class_cnt(label(i)) = class_cnt(label(i))+1;
end
% Return class label with maximum counts
[hit,class] = max(class_cnt);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?