批處理感知器算法的代碼matlab
w1=[1,0.1,1.1;1,6.8,7.1;1,-3.5,-4.1;1,2.0,2.7;1,4.1,2.8;1,3.1,5.0;1,-0.8,-1.3;
1,0.9,1.2;1,5.0,6.4;1,3.9,4.0];
w2=[1,7.1,4.2;1,-1.4,-4.3;1,4.5,0.0;1,6.3,1.6;1,4.2,1.9;1,1.4,-3.2;1,2.4,-4.0;
1,2.5,-6.1;1,8.4,3.7;1,4.1,-2.2];
w3=[1,-3.0,-2.9;1,0.5,8.7;1,2.9,2.1;1,-0.1,5.2;1,-4.0,2.2;1,-1.3,3.7;1,-3.4,6.2;
1,-4.1,3.4;1,-5.1,1.6;1,1.9,5.1];
figure;
plot(w3(:,2),w3(:,3),'ro');
hold on;
plot(w2(:,2),w2(:,3),'b+');
W=[w2;-w3];%增廣樣本規范化
a=[0,0,0];
k=0;%記錄步數
n=1;
y=zeros(size(W,2),1);%記錄錯分的樣本
while any(y<=0)
k=k+1;
y=a*transpose(W);%記錄錯分的樣本
a=a+sum(W(find(y<=0),:));%更新a
if k >= 250
break
end
end
if k<250
disp(['a為:',num2str(a)])
disp(['k為:',num2str(k)])
else
disp(['在250步以內沒有收斂,終止'])
end
%判決面:x2=-a2*x1/a3-a1/a3
xmin=min(min(w1(:,2)),min(w2(:,2)));
xmax=max(max(w1(:,2)),max(w2(:,2)));
x=xmin-1:xmax+1;%(xmax-xmin):
y=-a(2)*x/a(3)-a(1)/a(3);
plot(x,y)
標簽:
批處理
算法matlab
上傳時間:
2016-11-07
上傳用戶:a1241314660
/*=================================================================
4掃16*16下入上出C語言程序, 低位起筆,數據反相。
預定義
**************************************************************/
#include
#include //可使用其中定義的宏來訪問絕對地址?
bit ture=1; // 使能正反相位選擇
bit false=0; // 使能反相
sbit SCK=P3^6; // EQU 0B6H ; 移位
sbit RCK=P3^5; //EQU 0B5H ; 并行鎖存
//sbit P1_3=P1^3; //外RAM擴展讀寫控制,不能重復申明
sbit EN1=P1^7; //BIT
sbit FB=0xD8; // FB作為標志
sfr BUS_SPEED=0xA1; //訪問片外RAM速度設置寄存器
sfr P4SW=0xBB; //P4SW寄存器設置P4.4,P4.5,P4.6的功能
sfr P4=0xC0; // P4 EQU 0C0H
sbit NC=P4^4;
sbit CS=P4^6; //片選
sfr WDT_CONTR=0xC1; // 0C1H ;看門狗寄存器
sfr AUXR=0x8E; // EQU 08EH ;附件功能控制寄存器
sfr16 DPTR=0x82;
sfr CLK_DIV=0x97 ; //時鐘分頻寄存器
const unsigned int code All_zk =256 ; // 0E11H ;原數據總字節
const unsigned int code am_zk =128 ; // 0E13H ;單幕數據量
const unsigned char code asp = 255; // asp數據相位字,如果是正相字,那么asp=0
bit basp=1; // asp數據相位字標記,如果是正相字,那么basp=0
const unsigned char code font[]= // 晶科電子LED數碼(反相字)
{0xBD,0x81,0xEF,0xFF,0xBD,0x81,0xF7,0xFF,0xEF,0xEB,0x80,0x9F,0xEF,0x8F,0xEF,0xEF,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x00,0xFF,0xFF,0xFF,0x80,0xFE,0xFF,
0x81,0xBD,0x0F,0x0F,0x81,0xBD,0xF0,0xF0,0xEF,0xED,0xE7,0xE1,0xEF,0xE1,0xEE,0xEE,0x7F,0x7B,0x7B,0x7F,0xBF,0xEF,0xEF,0xFF,0x7F,0x7F,0x7F,0x03,0xFF,0xFF,0xFF,0xF0,
0xBD,0x81,0xEF,0xEF,0xBD,0x81,0xF7,0xF7,0xEF,0x2E,0xC7,0xEF,0xEF,0xEE,0xED,0xED,0xFF,0x03,0x03,0x7F,0x80,0xE0,0xE0,0xFF,0x5F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFB,
0xFF,0xBD,0xFF,0x0F,0xFF,0xBD,0xFF,0xF0,0xEF,0xEF,0xAB,0xEF,0xEF,0xEF,0xED,0xED,0xFF,0x7B,0x7B,0x03,0xFF,0xEF,0xEF,0xE0,0xBF,0x7F,0x7F,0xFF,0xFF,0xFF,0xDF,0xFD,
0xBD,0xFD,0xFD,0xFF,0xBD,0xED,0xBD,0xFF,0xDD,0xBD,0xDD,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xEF,0x00,0xEF,0xEB,0xEB,0x81,0xFB,0xC3,0xDA,0xF7,0xFF,0xDF,0xDF,0xEE,0xFF,
0x80,0xFD,0xFD,0xFF,0xC0,0xED,0xED,0xFF,0xE0,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xB3,0x00,0xC7,0x6D,0x8D,0xEB,0xDD,0xF3,0xDB,0xDB,0xFB,0x40,0xDF,0xDF,0xEE,0xE0,
0xFF,0xFD,0xFD,0xFF,0xFF,0xFD,0xED,0xFF,0xFF,0xBD,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xB7,0x2B,0xAB,0xDE,0xF7,0xDD,0xFB,0xFB,0x5B,0xC3,0xF7,0xEB,0xD0,0xEE,0xEF,
0xFF,0xFD,0xFD,0xF8,0xFF,0xBD,0xE1,0xC0,0xFF,0xBD,0xBD,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xD3,0xED,0xC7,0xFF,0xF7,0xDC,0xFB,0xFF,0xDB,0xD9,0xF7,0xF7,0xDF,0xC0,0xEE};
const unsigned char data xzL_data =0x08; //0603H;一幕一行字節數
const unsigned int data aL_data =0x20; //單幕單號線(單組線)數據量
const unsigned char data mov =0x03A ; //移動速度
const unsigned int data t_T =0x040A ; //0E0AH ; 05FAH; ;停留時間
const unsigned char data mu_num=0x02 ; //0602H ;幕數
unsigned int m; //m幕長變量<=am_zk
unsigned char data_z; //數據寄存器
unsigned int xd; //數據指針寄存器
/***********************************************************************
數據轉移子函數
===============================================================*/
char MOVD()
{
unsigned char f,nm; //nm幕數控制
unsigned char code *dptr;
unsigned char xdata *xdptr = 0;
f = asp ;
for (m=0; m
標簽:
P10
單元板
單片機源程序
上傳時間:
2017-05-04
上傳用戶:sbfd010