Matlab_神经网络工具箱(GUI界面的使用方法)
- 格式:ppt
- 大小:824.00 KB
- 文档页数:1
Matlab的神经网络工具箱入门在command window中键入help nnet>> help nnetNeural Network ToolboxVersion 7.0 (R2010b) 03-Aug-2010神经网络工具箱版本7.0(R2010b)03八月,2010图形用户界面功能。
nnstart - 神经网络启动GUInctool - 神经网络分类工具nftool - 神经网络的拟合工具nntraintool - 神经网络的训练工具nprtool - 神经网络模式识别工具ntstool - NFTool神经网络时间序列的工具nntool - 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer - 线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind - 设计一个线性层。
newpnn - 设计概率神经网络。
newrb - 径向基网络设计。
newrbe - 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap - 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡- 模拟一个神经网络。
初始化- 初始化一个神经网络。
今天由于要帮一朋友用matlab处理一幅图片,处理图片的要求其实很简单,就是把图片加载进matlab中,然后显示出想要的某一列的趋势图来。
如果用代码写的话,程序如下:x=imread(‘文件路径\*.jpg’);figure(1);plot(x(:,100)); %假如要显示的是图像的第100列的趋势图显示效果如下图所示:虽然用M文件写两句很简单,不过带着感情,追求更好是我们永恒的动力,首先用M文件时候人机界面不友好,的看很多的代码,尤其对不太熟悉M编程的的人而言即使很简单也看着比较郁闷,因此我们接下来用matlab中的GUI来完成这个简单的例子,当然编程起来比这个复杂多,但是对使用者而言确很简单清楚。
这个就如同VC中的MFC和WINDOWSFORMS一样。
做成的都是人机交互界面。
不废话了,看例子。
首先打开MATLAB,要新建一个MATLAB GUI 程序有三种方法,这里我直接在命令窗口里输入guide,新建一个空的GUI程序,选择如下图:新建好的GUI编程界面如下图,上面无非就是菜单,工具,还有编程用到的控件,还有编程的用户窗口。
这个和LABVIEW有点像。
不过LABVIEW的前面板都是用控件拖出来的,后面板也是拖控件画出来的。
而GUI的显示界面是拖控件画出来的,其中一些属性参数要设置下,而后面的执行这些控件的都是写的M函数,即后面板都是要写代码的,这个比LABVIEW单纯的画程序要难,当然灵活性也大,不过个人感觉没一个简单的,都难呀。
至于上面控件的意思,怎么拖请自己看吧,若学过MFC或者WINDOWSFORMS的人就会很容易理解的,这之间是太像了,呵呵。
我们的目的是显示图片,并且显示需要的某一列的趋势图。
为了使人机交互更好点,我们可以使加载图片时和我们选择打开文件夹那样完成,即自己选择路径,而不用每次在M文件里改路径。
还有我们要求在加载图片完成时立马显示出这幅图片的大小信息,即多少行,多少列。
1. 打开MATLAB,在命令行输入nntool,将出现如下界面:图1 神经网络工具箱主界面其中最主要的分为6个部分:第1部分中显示的是系统的输入数据;第2部分是系统的期望输出;第3部分是网络的计算输出;第4部分是网络的误差,即2和3之间的差异;第5部分呈现的是已经建立的神经网络实例;第6部分的两个按钮分别负责数据的导入和网络模型的建立。
2. 点击“Import”按钮,分别导入输入数据与目标输出数据(数据可从工作区导入,也可从文件导入):图2 导入输入数据集图3 导入期望输出数据集导入数据后主界面的情况如下:图4 导入数据后的情况重要说明:神经网络的数据是以列为基本单位的,即输入与输出数据的列数必须相同,否则将报错!如果原先数据是以行为单位组织的话,可以先在MATLAB 中实现转置然后再导入,即B = A’。
3.现在需要的数据已经有了,下一步就是建立一个神经网络模型对数据集进行学习。
以下步骤以BP网络为例,首先点击“New”按钮,出现如下界面:几个重要部分已在上图中框出:1处用于定义该神经网络的名称;2处用于选择神经网络的类型;3处用于选择网络的输入数据;4处用于确定网络的期望输出数据;5、6、7处分别对神经网络的主要机制函数进行设置;8处设置网络层数;9处用于选择各网络层(需要说明的是:第1层指的是隐含层而不是输入层),从而在10和11处可以对该层的神经元个数和传递函数进行设置;12处按钮可以用于查看当前所设置的神经网络的结构图(下附图);点击13处按钮即可生成对应的神经网络模型。
前面只是简单地介绍了各个部分的作用,具体参数应该如何设置就只有各位自行去学习相关的文献了,此处不再多言。
图6 神经网络结构预览4.现在模型和数据都有了,下一步该进行模型的训练了。
回到主界面如下:图7 回到主界面选中我们刚才建立的神经网络模型,然后点击“Open”按钮,将会出现如下界面:图8 神经网络界面在这里主要介绍两个选项卡中的内容,一个是“Train”,另一个是“Adapt”。
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录。
从简单的例子说起吧。
创建Matlab GUI界面通常有两种方式:1,使用 .m 文件直接动态添加控件2. 使用GUIDE 快速的生成GUI界面显然第二种可视化编辑方法算更适合写大型程序。
一:创建GUI1.在 .m文件中动态添加例如h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,…'numbertitle','off','position',[100 100 300 100]);h_edit=uicontrol('style','edit','backgroundcolor',[1 1 1],'position',[20 20 50 20],...'tag','myedit','string','1','horizontalalignment','left');h_but1=uicontrol('style','pushbutton','position',[20 50 50 20],'string','INC',...'callback',['v=eval(get(h_edit,''string''));',...'set(h_edit,''string'',int2str(v+1));']);h_but2=uicontrol('style','pushbutton','position',[80 50 50 20],'string','DEC',...'callback',['v=eval(get(h_edit,''string''));','set(h_edit,''string'',int2str(v-1));']);2.使用GUIDE帮助创建GUI在Command 里面输入GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图,可以使用如下工具:Layout Editor:布局编辑器;Alignment Tool:对齐工具;Property Inspector:对象属性观察器;Object Browser:对象浏览器;Menu Editor:菜单编辑器。
MATLAB中的神经网络工具箱详解神经网络是一种模拟人脑神经系统工作方式的计算模型,广泛应用于科学、工程和金融等领域。
而在MATLAB软件中,也有专门的神经网络工具箱,提供了丰富的功能和算法,用于实现神经网络的建模、训练和应用。
本文将对MATLAB中的神经网络工具箱进行详细的解析和介绍。
一、神经网络基础知识在深入了解MATLAB神经网络工具箱之前,我们首先来了解一些神经网络的基础知识。
1. 神经元和激活函数神经元是神经网络的基本单位,它接收来自其他神经元的输入,并通过激活函数将输入转化为输出。
在MATLAB中,可以使用`newff`函数创建一个前馈神经网络,可以通过`sim`函数进行网络的模拟和计算。
2. 训练算法神经网络的训练是指通过一系列的输入和输出样本来调整网络的参数,使得网络能够正确地学习和推断。
常用的训练算法包括误差逆传播算法(Backpropagation)、Levenberg-Marquardt算法等。
在MATLAB中,可以使用`train`函数进行网络的训练,可以选择不同的训练算法和参数。
二、MATLAB神经网络工具箱的使用1. 创建神经网络对象在MATLAB中,可以使用`newff`函数创建一个前馈神经网络对象,该函数的参数包括网络的结构、激活函数等。
例如,`net = newff(input, target, hiddenSize)`可以创建一个具有输入层、隐藏层和输出层的神经网络对象。
2. 设置神经网络参数创建神经网络对象后,可以使用`setwb`函数设置网络的权重和偏置值,使用`train`函数设置网络的训练算法和参数。
例如,`setwb(net, weights, biases)`可以设置网络的权重和偏置值。
3. 神经网络的训练神经网络的训练是通过提供一系列的输入和输出样本,调整网络的参数使得网络能够正确地学习和推断。
在MATLAB中,可以使用`train`函数进行网络的训练,该函数的参数包括训练集、目标值、训练算法和其他参数。
为了简单说明MatlabGUI的基本原理,下面做一个加法的界面打开matlab显示如下界面(部分):单击图标,弹出如下界面:按照默认,点ok按钮,弹出如下界面:这就是matlabGUI的编辑界面,下边分别选择相应的控件,用鼠标拖动到右边的区域,并且排列成下图所示的样子:第一个Edit Text按照如下设置,只需要修改String和Tag,需要说明的是,这里的Sting的值是文本框显示的字符串,也是我们在程序中需要读取的值,Tag的值代表该文本框的名字,在程序中也需要用到,其它项不变:第二个EditText按照如下图设置:第三个EditText按照如下图设置:第一个StaticText按照如下设置,这里只需要设置String,其它的不变:第一个StaticText按照如下设置Pushbutton按照如下设置设置完毕后的界面如下:设置完毕后保存,系统会自动生成一个同名的.m和.fig文件,比如add.m和add.fig,其中add是我保存的文件名,现在切换到上图的界面,在按钮上点右键,如下图所示,选择ViewCallbacks—>Callback这时会自动切换到该按钮的回调函数下面,如下图所示因为我们的程序是在点“确定”按钮之后执行,包括读取N1和N2的值,然后相加,最后把结果显示在第三个文本框中,所以这些程序代码要加在pushbutton_ok_Callback()函数下边,代码如下:N1=str2double(get(handles.N1,'string'));%读取N1的值,由于读的是String的值,%需要用str2double函数将字符串转化成数字型N2=str2double(get(handles.N2,'string'));N3=N1+N2;set(handles.Sum,'string',N3);%在第三个文本框显示结果保存后点击图标就可以运行了。
Matlab的神经网络工具箱实用指南第一章介绍1.神经网络神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。
在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。
一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。
如下图所示。
这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。
作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。
由基于一系列(一套)完整的输入向量的权值和偏置值能确定一个一系列的网络学习。
提交过独立输入向量后,递增训练按需要改变权值和偏置值。
递增训练有时被成为实时训练或者可适应性训练。
神经网络已经在各个领域中应用,以实现各种复杂的功能。
这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。
在第一章给出了一系列应用。
如今神经网络能够用来解决常规计算机和人难以解决的问题。
我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。
一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。
例如:无监督网络可以被应用在数据组的辨别上。
一些特定种类的线形网络和Hopfield网络是直接设计的。
总的来说,有各种各样的设计和学习方法来丰富用户的选择。
神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。
因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。
我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理过程。
我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。
因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。
Matlab GUI 常用操作菜单1.编辑菜单打开GUIDE,选择工具栏上面的菜单编辑按钮2.添加菜单回调函数(callback)菜单编辑完成保存后,在fig对应的m文件中会自动生成菜单的回调函数声明例如菜单tag名为menuFilePrint,则对应的callback函数为:function menuFilePrint_Callback(hObject, eventdata, handles)可以在该函数内添加代码实现功能。
3.菜单项访问获取菜单句柄在matlab的函数中要对某个菜单进行访问,必须获得该菜单的句柄。
如果是在菜单的回调函数里面,hObject就是该菜单的句柄;如果是在其他的函数里面要获得某一菜单的句柄,比如选中工具栏上的ZoomIn按钮,按钮处于被按下状态,同时要设置对应菜单项view->Zoom-Zoom In 为选中状态,如下图:这里要在按钮“ZoomIn”的callback函数里面实现对菜单menuViewZoomIn的状态设置。
首先得获得菜单的句柄:% first we must get the handle of menuZoomInhFigChildren = allchild(gcf);% menuView handlehMenuView = findobj(hFigChildren,'Tag','menuView');hvc = allchild(hMenuView);% menuViewZoomhViewZoom = findobj(hvc,'Tag','menuViewZoom');hvzc = allchild(hViewZoom);%menuZoomIn handlehZoomIn = findobj(hvzc,'Tag', 'menuZoomIn');获取设置菜单状态得到菜单的句柄后就可以得到菜单当前的状态了:if strcmp(get(hZoomIn, 'Checked'),'on')set(hZoomIn, 'Checked', 'off');elseset(hZoomIn, 'Checked', 'on');end工具栏1.不显示工具栏1)GUIDE开发界面在对应的m文件中找到function Main_OpeningFcn(hObject, eventdata, handles, varargin)在该函数里面添加:set(hObject,'Toolbar','none');2)M文件开发hMainFigure = figure(... % The main GUI figure'MenuBar','none', ...'Toolbar','none', ...'HandleVisibility','callback', ...'Color', get(0,...'defaultuicontrolbackgroundcolor'));2.显示“Figure”工具栏set(hObject,'Toolbar','figure');3.添加自定义工具栏set(hObject,'Toolbar','none');hToolbar = uitoolbar(hObject);hNewPushtool = uipushtool(... % Open toolbar button'Parent',hToolbar,...'TooltipString','New File',...'CData',imread('New.bmp'));'HandleVisibility','callback', ...'ClickedCallback', @hOpenMenuitemCallback);4.获取工具栏句柄% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end5.获取figure工具栏按钮的tag值% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, ‘Tag’);hTags保存了工具栏所有按钮的tag值:6.获取设置figure工具栏按钮的callback函数%reset callback function for "Zoom in"hZoomIn = findobj(hChildren,'Tag','Exploration.ZoomIn');set(hZoomIn,'ClickedCallback',@tbZoomIn_Callback);function tbZoomIn_Callback(hObject, eventdata)% hObject handle to tbZoomIn (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB 7.删除figure工具栏按钮% set figure toolbar firstset(hObject,'Toolbar','figure');% get toolbar handletbh = findall(hObject,'Type','uitoolbar');if isempty(tbh), return, end% toolbar buttons collectionhChildren = allchild(tbh);if isempty(hChildren), return, end% delete data cursor buttonhDeleted = findobj(hChildren,'Tag','Exploration.DataCursor');delete(hDeleted);8.设置figure工具栏按钮的状态% get toolbar handlehToolbar = findall(gcf,'Type','uitoolbar');if isempty(hToolbar), return, end% get all childrenhChildren = allchild(hToolbar);if isempty(hChildren), return,endhTags = get(hChildren, 'Tag');% find "Zoom In" buttonhb = findobj(hChildren,'Tag','Exploration.ZoomIn');if isempty(hb),return, end% set stateif strcmp(get(hObject, 'Checked'),'on')set(hObject, 'Checked', 'off');set(hb,'State', 'off');elseset(hObject, 'Checked', 'on');set(hb,'State', 'on');end。
Matlab的神经网络工具箱实用指南文章摘要:第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。
第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。
第一章介绍1.神经网络神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。
在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。
一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。
如下图所示。
这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。
作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。
神经网络已经在各个领域中应用,以实现各种复杂的功能。
这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。
如今神经网络能够用来解决常规计算机和人难以解决的问题。
我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。
一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。
无监督网络可以被应用在数据组的辨别上。
一些线形网络和Hopfield网络是直接设计的。
总的来说,有各种各样的设计和学习方法来增强用户的选择。
神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。
因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。
我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。
我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。
因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。
Matlab的神经网络工具箱入门在command window中键入help nnet>> help nnetNeural Network ToolboxVersion 7.0 (R2010b) 03-Aug-2010神经网络工具箱版本7.0(R2010b)03八月,2010图形用户界面功能。
nnstart - 神经网络启动GUInctool - 神经网络分类工具nftool - 神经网络的拟合工具nntraintool - 神经网络的训练工具nprtool - 神经网络模式识别工具ntstool - NFTool神经网络时间序列的工具nntool - 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet - 串级,前馈神经网络。
competlayer - 竞争神经层。
distdelaynet - 分布时滞的神经网络。
elmannet - Elman神经网络。
feedforwardnet - 前馈神经网络。
fitnet - 函数拟合神经网络。
layrecnet - 分层递归神经网络。
linearlayer - 线性神经层。
lvqnet - 学习矢量量化(LVQ)神经网络。
narnet - 非线性自结合的时间序列网络。
narxnet - 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind - 设计一个线性层。
newpnn - 设计概率神经网络。
newrb - 径向基网络设计。
newrbe - 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap - 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡- 模拟一个神经网络。
初始化- 初始化一个神经网络。