axis([0 10 0 10]);%橫、縱座標範圍
hold on
%hold on 使當前軸及圖形保持而不被重新整理,準備接受此後將繪製的圖形,多圖共存
%hold off 使當前軸及圖形不在具備被重新整理的性質,新圖出現時,取消原圖
x=;%存放滑鼠取點座標
n=0;%計數
%w1類取點向量
disp('單擊滑鼠左鍵點取需要的點');
disp('單擊滑鼠右鍵點取最後乙個點');
but=1;
while but==1
[xi,yi,but]=ginput(1);%[x,y,button] = ginput(...) 返回x和y的座標,以及button值(1=左鍵,2=中,3=右)或者按鍵的asxii碼值
plot(xi,yi,'b-o')
n=n+1;
disp('單擊滑鼠左鍵點取下乙個點');
x(n,1)=xi;
x(n,2)=yi;
end;
nn=n;%w1分界點
%disp(num2str(nn));
hold on
%w2類取點向量
disp('單擊滑鼠右鍵點取需要的點');
disp('單擊滑鼠左鍵點取最後乙個點');
but=3;
while but==3
[xi,yi,but]=ginput(1);
plot(xi,yi,'r-.*')
n=n+1;
disp('單擊滑鼠右鍵點取下乙個點');
x(n,1)=xi;
x(n,2)=yi;
end%disp(num2str(n));
y=zeros(n,3);%w1,w2類樣本的增廣向量
for i=1:nn
y(i,1)=x(i,1);
y(i,2)=x(i,2);
y(i,3)=1;
end%disp(num2str(y));
for i=nn+1:n
y(i,1)=-x(i,1);
y(i,2)=-x(i,2);
y(i,3)=-1;
end%disp(num2str(y));
w=[0;0;0];p=1;k=0;%給定初始權向量,增量,步數
d=zeros(n,10000);%用來儲存判別函式
for i=1:10000
for j=1:n
k=k+1;
d(j,i)=y(j,:)*w;
if d(j,i)<=0
w=w+y(j,:)';
endend
if d(:,i)>0
disp('所求的解向量為:');
disp(num2str(w));
break;
endend
fun=@(xx,yy)w(1)*xx+w(2)*yy+w(3);%匿名函式的定義:函式控制代碼=@(變數名) 函式表示式
h=ezplot(fun,[0 10 0 10]);%畫出函式圖形
set(h,'color','y','linewidth',2);%%設定顏色和線寬
hold off
感知器演算法
coding utf 8 created on thu oct 15 13 58 06 2015 author think 感知器演算法 import mkdata as mk import numpy as np import matplotlib.pyplot as plt n 100 生成測試...
感知器演算法
感知器演算法步驟 1.給出m個帶有標籤的樣本,其中yi 1 or 1 xi xi1,xi2,xin 2.將資料的標籤併入訓練樣本,形成增廣向量,每個資料的維數為n 1 3.在 0,1 均勻分布區間內生成1x n 1 權值矩陣w 4.將資料依次送入感知器進行學習。如果w data k,yk 0 說明訓...
感知器演算法
clc clear all fprintf 感知器演算法 n x 1,4,1 2,6,1 1,2,1 2,2,1 x 0,0,0,1 1,0,0,1 1,0,1,1 1,1,0,1 0,0,1,1 0,1,1,1 0,1,0,1 1,1,1,1 n,n size x 獲取樣本數目和維數 n為樣本數目...