matlab参数数目不足lorenz,matlab基础程序——为什么会出现“输入参数的数目不足”...

%KNN classifiers,

%training is training set, testing is test set,

%D is the  distance, D=1 is mandistance; D=2 is 欧氏距离 D=3是 infinite norm

% K is the number of selected neighbors

function label=KNN2(training,testing,D,K)

[row, column]=size(training);

[row1,column1]=size(testing);

%计算测试集与训练集的距离

distance=[];

if D==1

for i=1:row1

for j=1:row

temp=[training(j,[1:(column-1)]);testing(i,:)];

d=mandist(temp);

distance(i,j)=d(1,2);

end

end

end

if D==2

for i=1:row1

for j=1:row

temp=[training(j,[1:(column-1)]);testing(i,:)]';

d=dist(temp);

distance(i,j)=d(1,2);

end

end

end

if D==3

for i=1:row1

for j=1:row

temp=[training(j,[1:(column-1)]);testing(i,:)];

d=max(abs(temp(1,:)-temp(2,:)));

distance(i,j)=d;

end

end

end

% 寻找k个近邻

label=[];

for i=1:row1

[a,b]=sort(distance(i,:));

neighbors=b(1:K)';

neighbors_D=training(neighbors,column);

[x,y]=sort(neighbors_D);

temp=find(diff(x)~=0);

nei_d=[x(1);x(temp+1)];

Num_D=[];

for j=1:length(nei_d)

num=length(find(neighbors_D==nei_d(j)));

Num_D=[Num_D,num];

end

[a,b]=max(Num_D);

label(i)=nei_d(b);

end

这是源程序

>> KNN2

错误使用 KNN2 (line 6)

输入参数的数目不足。

这是结果

以上是直接复制粘贴参考书里面的源程序。但是死活不正确。

求指教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值