📄 getpoints.asv
字号:
%函数名称:GetPoints(Num,A,xp,phai,CrX,CrY)
%函数作用:建立正弦信号曲线作为理想分类面,在一定区域内随机生成指定个数的座标点
% 并给出原始分类信息,作为分类训练样本。
%函数参数:Num,A,xp,phai,CrX,CrY
%参数说明:Num:需要的坐标点数
% A:正弦信号的幅值
% xp:正弦信号的周期
% phai:正弦信号的初相角
% CrX:坐标点分布的水平范围(x=0/CrX)
% CrY:坐标点分布的垂直范围(y=+/-CrY)
%函数输出:Points[]
%输出说明:Points[x,y,i]:坐标点(x,y),其分类为i,如果坐标点在
% 正弦信号上方,则i=1;如果在正弦信号下方,则i=0。
%创建日期:2007.12.31
%最后更新日期:2007.12.31
function Points=GetPoints(Num,A,xp,phai,CrX,CrY);
%生成随机坐标点数组(0-1之间),乘以2是为了后面取舍方便,防止点恰好出现在分类面上
rndpoints=rand(2,Num*2);
%将随机坐标点线性水平变换到(0,CrX)之间,垂直变换到(-Cr,Cr)之间
rndpoints(1,:)=rndpoints(1,:)*CrX;
rndpoints(2,:)=(rndpoints(2,:)-0.5)*CrY;
%定义一个循环计数器
counter=0;
%为rndpoints定义一个移动指针
rdp=0;
%生成待输出的随机坐标点矩阵
output=zeros(3,Num);
%开始循环对随机坐标点进行分类
while(counter<Num)
if(rndpoints(2,rdp)=A*sin(rndpoints(1,rdp)))
rdp=rdp+1;
continue;
end
if(rndpoints(2,rdp)>A*sin(rndpoints(1,rdp)))
output(1,counter)=rndpoints(1,rdp);
output(2,counter)=rndpoints()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -