当前位置:网站首页 > MATLAB编程 > 正文

matlab函数输入参数不足(matlab说输入参数不足)



function [Alpha1,Alpha2,Alpha,Flag,B]=SVMNR3(x,y,Epsilon,C,D)

nntwarn off

[X,XS]=premnmx(x);

[Y,YS]=premnmx(y);

%第一步:构造K矩阵

l=size(X,2);

K=zeros(l,l);

for i=1:l

for j=1:l

xi=X(:,i);

xj=X(:,j);

%K(i,j)=sum(xi.*xj);

%K(i,j)=(sum(xi.*xj)+1)^20;%注意:核函数在此定义!

K(i,j)=exp(-(norm((xi-xj).^2)/D));

%K(i,j)=exp(-(sum((xi-xj))/100));

end

end

%第二步:构造二次规划模型参数H,Ft,Aeq,Beq,lb,ub

H=[K,-K;-K,K];

H=(H+H')/2;

Ft=[Epsilon*ones(1,l)-Y,Epsilon*ones(1,l)+Y];

Aeq=[ones(1,l),-ones(1,l)];

Beq=0;

lb=eps.*ones(2*l,1);

ub=C*ones(2*l,1);

%第三步:调用优化工具箱quadprog函数求解二次规划

OPT=optimset;

OPT.LargeScale='off';

OPT.Display='off';

[Gamma,Obj]=quadprog(H,Ft,[],[],Aeq,Beq,lb,ub,[],OPT);

%[Gamma,Obj]=fmincon('myfun',5.*ones(18,1),[],[],Aeq,Beq,lb,ub);

%第四步:整理输出参数

Alpha1=(Gamma(1:l,1))';

Alpha2=(Gamma((l+1):end,1))';

Alpha=Alpha1-Alpha2;

Flag=2*ones(1,l);

%第五步:支持向量的分类

Err=0.0000000000001;

for i=1:l

AA=Alpha1(i);

BB=Alpha2(i);

if (abs(AA-0)<=Err)&&(abs(BB-0)<=Err)

Flag(i)=0;

end

if (AA>Err)&&(AA

Flag(i)=2;

end

if (abs(AA-0)<=Err)&&(BB>Err)&&(BB

Flag(i)=2;

end

if (abs(AA-C)<=Err)&&(abs(BB-0)<=Err)

Flag(i)=1;

end

if (abs(AA-0)<=Err)&&(abs(BB-C)<=Err)

Flag(i)=1;

end

end

%第六步:计算B

B=0;

counter=0;

for i=1:l

AA=Alpha1(i);

BB=Alpha2(i);

if (AA>Err)&&(AA

%计算支持向量加权值

SUM=0;

for j=1:l

if Flag(j)>0

%SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i));

%SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i))+1)^20;

SUM=SUM+Alpha(j)*exp(-(norm((X(:,j)-X(:,i)).^2)/D));

%SUM=SUM+Alpha(j)*exp(-(sum((X(:,j)-X(:,i)))/100));

end

end

b=Y(i)-SUM-Epsilon;

B=B+b;

counter=counter+1;

end

if (abs(AA-0)<=Err)&&(BB>Err)&&(BB

SUM=0;

for j=1:l

if Flag(j)>0

%SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i));

%SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i))+1)^20;

SUM=SUM+Alpha(j)*exp(-(norm((X(:,j)-X(:,i)).^2)/D));

%SUM=SUM+Alpha(j)*exp(-(sum((X(:,j)-X(:,i)))/100));

end

end

b=Y(i)-SUM+Epsilon;

B=B+b;

counter=counter+1;

end

end

B=B/counter;

end

这是我在网上搜的利用SVM进行非线性回归的函数,运行总是报错

>> SVMNR3

错误使用 SVMNR3 (line 18)

输入参数的数目不足。

是什么问题,可以帮忙解决吗?非常感谢!

到此这篇matlab函数输入参数不足(matlab说输入参数不足)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Cmip6降尺度(cmip6降尺度matlab)2025-02-19 17:09:09
  • matlab怎么输出多个变量(matlab如何输出多个变量的值)2025-02-19 17:09:09
  • matlab中脚本和函数区别(matlab脚本和函数合起来运行)2025-02-19 17:09:09
  • matlab天蓝色颜色代码(matlab深蓝色)2025-02-19 17:09:09
  • MATLAB for循环_matlabfor循环怎么写2025-02-19 17:09:09
  • matlab天蓝色颜色代码(matlab蓝色线)2025-02-19 17:09:09
  • matlab函数与脚本(matlab函数脚本中变量的取值不同怎么输入)2025-02-19 17:09:09
  • matlab function多输出(matlab多输入多输出建模)2025-02-19 17:09:09
  • matlab函数输入参数太多怎么办(matlab函数输入的参数数目不足)2025-02-19 17:09:09
  • 颜色代码对应表2024(颜色代码对应表MATLAB)2025-02-19 17:09:09
  • 全屏图片