EDA365电子论坛网

标题: 函数或变量 'knnclassify' 无法识别 [打印本页]

作者: TEL15286598    时间: 2022-10-19 10:50
标题: 函数或变量 'knnclassify' 无法识别
之前是matlab2016b,写的这个KNN,跑的没什么问题,中午重装matlab换成2019b了,同样的程序上午还在用,下午就不行了。$ x3 i! v1 X9 D
%数据集划分. b# T, y" P+ K' n' K; \  R6 W5 l0 {& K
flag=fix(0.8*n);: {! a2 G2 o9 S# z! z9 J, T
x_train=data(idx(1:flag),: );
6 x+ t6 k9 \7 ~+ O" \3 o1 Sy_train=label(idx(1:flag),: );+ y! I, X+ W9 K5 b/ d* t
x_test=data(idx(flag+1:end),: );: Z" X( S: t: y
y_test=label(idx(flag+1:end),: );
; S4 `, \+ l+ Z# e, Q" P%knn分类
  ~3 `& ^  Q( ~' A, kclass = knnclassify(x_test, x_train, y_train,2);%k取2% J8 y6 U4 I% r+ o6 i9 F
acc=sum(class==y_test)/size(class,1);
$ P* @' v9 p: ^8 wplot(class,'k*');" f& }4 F9 c* d# k" }
hold on;% O1 }" p- @9 `4 n7 g0 @& I
plot(y_test,'ro');
5 J- r" I  V# Y0 n8 vlegend('预测值','实际值')
. X& J7 C3 P4 S4 t9 f$ t$ N1 E4 `$ e# u

作者: Nain    时间: 2022-10-19 13:12
2019b已经没有knnclassify这个函数了,换成了fitcknn。
% c* @6 _; m$ F1 y' Y9 {把class = knnclassify(x_test, x_train, y_train,2);%k取22 u3 N- g4 S  k; w' c5 G
换成下面的代码即可:
  k% t$ L- z$ l/ ^7 Amdl = fitcknn(x_train, y_train,'NumNeighbors',2);
' B( Q) X$ W1 B! a* e6 Q- ?) bclass = predict(mdl,x_test);
作者: hfiwioq    时间: 2022-10-19 13:20
之前的matlab2016b可能安装了包含knnclassify的工具箱,而2019b没有,安装对应工具箱或将相关放在同一文件下运行




欢迎光临 EDA365电子论坛网 (https://eda365.com/) Powered by Discuz! X3.2