📄 perceptron_example2.m
字号:
%--------------------------------------------------------------------------
% 复杂输入矢量的分类问题,输入矢量由三个元素组成。
%
% initp—对感知器神经元初始化
% simup—对感知器神经元仿真
% trainp—利用感知器学习规则对感知器神经元训练
%--------------------------------------------------------------------------
clf reset; % 从当前图形窗口删除所有图形对象,除"Position, Units, PaperPosition, and PaperUnits"
% 等属性外。恢复图形窗口其他属性的默认设置
figure(gcf); % gcf--获得当前图形窗口的句柄
% set(gcf,300,300);
% set(gcf, 'PaperPosition', [2 1 4 2]);
echo on; % 允许在屏幕上显示批处理命令行
clc;
p=[-1 1 -1 1 -1 1 -1 1;
-1 -1 1 1 -1 -1 1 1;
-1 -1 -1 -1 1 1 1 1]; % p为输入矢量
t=[0 1 0 0 1 1 0 1]; % t为目标矢量
plotpv(p,t); % 画出感知器的输入/目标矢量
pause;
[w,b]=initp(p,t); % 定义感知器神经元,w是权值矩阵,b是阈值矩阵
% 试分析:w和b的大小?
pause;
% w是1*3的矩阵,b是1*1的变量
pause;
clc;
echo off; % 禁止在屏幕上显示批处理命令行
clc;
k=pickic;
if k==2
w=[-0.8161; 0.3078; 0.3078];
b=[-0.1680];
end
echo on;
clc;
plotpc(w,b); % 在感知器矢量图图上,画出与初始权值和阈值对应的分类线
pause;
clc;
[w,b,epochs,errors]=trainp(w,b,p,t,-1); % 训练感知器神经元
pause;
clc;
ploterr(errors); % 画出误差曲线
pause;
clc;
plotpv(p,t);
p=[0.7; 1.2; -0.2]; % 利用训练完的感知器神经元进行分类
hold on;
plot3(p(1),p(2),p(3),'*');
hold off;
pause;
clc;
% 试分析:对应于输入[0.7; 1.2; -0.2]的输出值?
% p=[-1 1 -1 1 -1 1 -1 1;
% -1 -1 1 1 -1 -1 1 1;
% -1 -1 -1 -1 1 1 1 1]; % p为输入矢量
% t=[0 1 0 0 1 1 0 1]; % t为目标矢量
a=simup(p,w,b)
echo off;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -