模式识别实验讲义_第1页
模式识别实验讲义_第2页
模式识别实验讲义_第3页
模式识别实验讲义_第4页
模式识别实验讲义_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 模式识别实验讲义唐志芳编信息与通信学院目 录 TOC o 1-3 h z HYPERLINK l _Toc106425184 MATLAB 基础 PAGEREF _Toc106425184 h 1 HYPERLINK l _Toc106425185 实验一 感知器算法实验 PAGEREF _Toc106425185 h 6 HYPERLINK l _Toc106425186 实验二 模式聚类算法实验8 HYPERLINK l _Toc106425187 实验三 图像识别实验 PAGEREF _Toc106425187 h 11PAGE 10MATLAB 基础1矩阵定义由m行n列构成的

2、数组称为(mn)阶矩阵。用方括号定义矩阵,其中方括号内,逗号或 空格号分隔矩阵列数值, ;分号或Enter回车键分隔矩阵行数值。例:a=a11 a12 a13;a21 a22 a23或a=a11,a12,a13;a21,a22,a23定义了一个2*3阶矩阵a。aa11 a12 a13a21 a22 a23aij可以为数值、变量、表达式或字符串,如为数值与变量得先赋值,表达式和变量可以以任何组合形式出现,字符串须每一行中的字母个数相等 ,调用时缺省状态按行顺序取字母,如a(1)为第一行第一个字母。下标引用:单下标方式:a(1)= a11 a(4)= a22 (以列的方式排列a11 a21 a12

3、 a22 a13 a23) 双下标方式:a(1,1)= a11 a(2,1)= a212矩阵的加减运算两矩阵相加减,是对应元素的加减,要求两矩阵具有相同的行数,相同的列数。MATLAB表达式形式:CAB 和CAB ,其中Cij=AijBij。3 向量乘积和转置两矩阵A,B相乘,要求两个矩阵的相邻阶数相等,一般情况下不满足交换律。MATLAB表达式形式:C=A*B 其中第i行j列元素Cij为A的第i行的m个元素与B的第j列的n个对应元素的乘积之和。矩阵的转置就是把矩阵的第I行就j列的元素放在第j行第i列的位置上。在MATLAB中,对于实矩阵的转置用单引号“”表示:C=A。4 图像文件操作imre

4、ad()函数从图像文件中读入图像数据,格式:A=imread(文件名,图像文件格式)如:A=imread(“lena.bmp”,bmp)A 为无符号8位整数(unit8)。如果文件为灰度函数,则A为一个二维数组,如果文件是一个真彩色RGB图像,则A是一个三维数组(mn3)。imwrite()函数将图像写入图像文件格式:imwrite(A,文件名,图像文件格式)如:imwrite(A,“lenabak.bmp”,bmp)imwrite函数将变量A中图像按图像文件格式指定的保存格式写入文件名指定的文件中。如果A是一个无符号8位整数表示的灰度图像或真彩色图像,imwrite直接将数组A中值写入文件。

5、如果A为双精度浮点数,imwrite首先使用uint8(round(255*A)自动将数组中的值变换为无符号8位整数,即将0,1范围内的浮点数变换为0,255范围内8位整数,然后写入文件。5 图像显示imshow()函数用于图像显示格式:imshow(I,n) imshow(I,low,high)格式1,imshow函数可使用n个灰度级显示灰度图像I。如果缺省n,则使用256级灰度。格式2,imshow函数可将I显示为灰度图像,灰度级范围为low,high。6 MATLAB的M文件MATLAB中的M文件实际上就是一个由一些MATLAB所允许的语句组成的批处理文件。它是一个ASCII码文本文件,

6、所有文本编辑器都可对它进行编辑,但一般我们在MATLAB的集成环境中编辑修改并运行。在MATLAB的命令主窗口中点击File-New-M-file,即可打开如图A-3所示的MATLAB编辑/调试窗口。根据用户需要键入MATLAB各种命令语句,即可完成系统M文件的输入。注意后的内容为注释内容。程序控制: (1) for 循环语句格式如下:for t表达式1:表达式2:表达式3 语句体end其中,表达式1的循环的初值,表达式2的值为步长,表达式3的值为循环的终值。如果表达式2省略,则默认步长为1。例:for n=1:5 for m=1:n r(n,m)= m*nendend(2)while 循环语

7、句 格式如下:while 表达式语句体end当表达式的值为真时,执行语句体;当表达式的值为假时,终止该循环。(3)if 条件判断语句格式如下:if 逻辑表达式1语句体1elseif逻辑表达式2语句体2elseif逻辑表达式3语句体3else语句体end(4)switch 语句switch 表达式case 值1语句体1case 值2语句体2otherwise语句体end(5)子函数每个函数文件可以包含多个函数。在函数文件的第一行定义的函数为主函数,当调用文件名时,调用主函数。在函数文件中,除第一行定义的函数外,其余的函数称为子函数。子函数只能被该文件里的其他函数和主函数调用。function o

8、utput = fact(n) % FACT Calculate factorial of a given positive integer. output = 1; for i = 1:n, output = output*i; end (6)MATLAB中的运算符和特殊字符说明符号符号用途说明+加 -减.点乘 详细说明help arith矩阵相乘矩阵求幂.点幂左除 详细说明help slash/右除.点左除./点右除kron张量积 详细说明help kron,作分隔用,如把矩阵元素、向量参数、函数参数、几个表达式分隔开来;(a)写在一个表达式后面时,运算后命令窗口中不显示表达式的计算结果(

9、b)在创建矩阵的语句中指示一行元素的结束,例如m=x y z;i j k:(a)创建向量的表达式分隔符,如x=a:b:c(b)a(:,j)表示j列的所有行元素;a(i,:)表示i行的所有列元素;a(1:3,4)表示第四列的第1行至第3行元素()圆括号创建数组、向量、矩阵或字符串(字母型)创建单元矩阵(cell array)或结构(struct)%注释符,特别当编写自定义函数文件时,紧跟function后的注释语句,在你使用help函数名时会显示出来。(a)定义字符串用(b)向量或矩阵的共轭转置符.一般转置符.表示MATLAB表达式继续到下一行,增强代码可读性赋值符号等于关系运算符,小于,大于关

10、系运算符 详细说明help relop&逻辑与|逻辑或逻辑非xor逻辑异或MATLAB所定义的特殊变量及其意义变量名意义help在线帮助命令, 如用help plot调用命令函数plot的帮助说明。who列出所有定义过的变量名称ans最近的计算结果的变量名epsMATLAB定义的正的极小值=2.2204e-16pi值3.14159265.inf值,无限大NaN非数特殊矩阵生成函数函数命令说明compan(a)生成伴随矩阵,a须为向量,即行数为1或列数为1的矩阵。magic(a)生成a阶魔方阵,pascal(a)pascal(a,k)生成a阶Pascal矩阵(向右上的斜列方向为对应的二项式(x+

11、y)i 项系数)设置k=1时,按行方向由上到下,由左到右顺序为(xy)i项系数设置k=2时,按列方向由下到上,由右到左顺序为(xy)i项系数hadamard(a)生成哈达玛矩阵,其中a,a/12或a/20须为2的整数次幂。H2=1 1;1 -1 H2n=Hn Hn;Hn -Hn (Hn为n阶hadamard矩阵)hilb(a)生成a阶希尔伯特矩阵,其中元素aij为1/(i+j-1)。invhilb(a)生成a阶希尔伯特矩阵的逆矩阵。实验一 感知器算法实验一、实验目的掌握感知器算法聚类原理。 二、实验原理感知器算法:(1)已知两个训练模式集共N个模式,它们分别属于和类,权向量初始值为;(2)在用

12、全部训练模式集进行第一轮迭代中,第次训练步骤为:如 且 且分类器对第个模式做错误分类,应校正权向量,使 (C为一校正常数)如 且 且分类器对第个模式做错误分类,应校正权向量,使 如不合以上情况,表明该模式样本在第部中分类正确,权向量不变,即(3)重复第2部,一直到某轮训练中所有的模式都有:三、使用仪器、材料计算机四、实验步骤1.实验步骤利用MATLAB编程实现感知器分类算法,并对实验一中图1实验数据进行分类(左下角 8点属于第一类,右上角点属于第二类),求出判别函数,画出判别界面。1)20个模式样本点,分别属于和类,取权向量初始值为0 0 0,校正系数C=1;并对类样本取增广向量后乘(-1);

13、2)在用全部训练模式集进行第一轮迭代中,第次训练步骤为:如 ,则分类器对做错误分类,应校正权向量,使W(k+1)=W(k)+Xk;否则权向量不变,即W(k+1)W(k);(3)重复第2步,直到某轮训练中所有的模式都有:WT(k)*Xk0为止,算法收敛,记录数据。2. 实验程序示例%感知器算法% 20个分类点集合x=0 0 1;1 0 1;0 1 1;1 1 1;2 1 1;1 2 1;2 2 1;3 2 1;-6 -6 -1;-7 -6 -1;-8 -6 -1;-6 -7 -1;-7 -7 -1;-8 -7 -1;-9 -7 -1;-7 -8 -1;-8 -8 -1;-9 -8 -1;-8 -

14、9 -1;-9 -9 -1;x=x;sx=size(x);%=(2,20)w=0 0 0;f=1;k=0;while f=1 k=k+1 f=0; for i=1:sx(2) if w*x(:,i)=0 i w=w+x(:,i) f=1; %else h(i)=w*x(:,i); end end end五、实验过程原始记录 六、实验结果及分析实验二 模式聚类算法实验一、实验目的掌握K均值模式聚类原理。 二、实验原理K均值聚类法是先行选择K个样本点作为初始聚类中心,再按照最小距离原则使各个样本点向各个中心聚集,从而得到初始分类。然后判断初始分类是否合理(即为判断聚类前后聚类中心是否改变),如果不

15、合理(即为聚类中心改变),就修改分类。以此反复进行修改聚类的迭代运算,知道合理为止。K均值聚类法步骤:第一:选K个初始聚类中心:Z1(1),Z2(1),Zk(1);第二:逐个将需要分类的模式样本xi, i=1,2,3,N按最小距离原则分配给K个聚类中心中的某一个;第三:计算各个聚类中心的新的向量值: j=1,2,KNj为第j个聚类域Sj所包含样本个数;0 1 2 3 4 5 6 7 8 9 1010987654321X1X2图1第四:如果 ,j=1,2,K,则回到第二步,将模式样本逐个重新分类,重复迭代计算。如果 ,j=1,2,K,算法收敛,计算完毕。三、使用仪器、材料计算机四、实验步骤1.利

16、用MATLAB编程实现K均值聚类算法,并对图1中实验数据进行分类。1)取K2,选择两个初始聚类中心Z10 0,Z2=1 0;2)逐个计算各个需要分类的模式样本xi, i=1,2,3,N到Z1、Z2的距离,按最小距离原则分配给Z1或Z2;3)计算Z1、Z2新的向量值: j=1,2,Nj为第j个聚类域Sj所包含样本个数;4)如果 ,j=1,2,则回到第2步,将模式样本逐个重新分类,重复迭代计算。如果 ,j=1,2,算法收敛,计算完毕。2.实验程序示例%K均值模式聚类程序close all;clear;clc;%分类点集合x=0 0;1 0;0 1;1 1;2 1;1 2;2 2;3 2;6 6 ;

17、 7 6;8 8;6 7;7 7;8 7;9 7;7 8;8 8;9 8;8 9;9 9;x=x;sx=size(x);%初始化两个聚类中心z1=0 0;z2=1 0;%开始分类while 1 s1=;s2=; for i=1:sx(2) %逐个将需要分类的模式样本xi, i=1,2,3,N按最小距离原则分配给K个聚类中心中的某一个;if (x(1,i)-z1(1,1)2+(x(2,i)-z1(2,1)2(x(1,i)-z2(1,1)2+(x(2,i)-z2(2,1)2 s1=s1 x(:,i); else s2=s2 x(:,i); end end %计算各个聚类中心的新的向量值 sz1=size(s1); z1n=(sum(s1)/sz1(2); sz2=size(s2); z2n=(sum(s2)/sz2(2); %如果聚类中心不改变,算法结束,退出 if z1=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论