2.MATLAB函数与神经网络工具箱.ppt
MATLAB函数与神经网络工具箱 编者 Outline1.MATLAB常用命令 2.矩阵生成和基本运算 3.数学函数 4.图形相关函数5.神经网络工具箱1.MATLAB常用命令命令功能clear清除工作空间中的所有变量clf清除图形窗口的内容close关闭图形窗口clc清除命令窗口中的内容,光标返回屏幕左上角home光标返回屏幕左上角who列出工作空间的变量whos列出工作空间的变量及其详细信息pack整理工作空间的内存format设置浮点数的输出格式echo显示M文件中所执行的命令save保存工作空间的变量到文件load从文件加载变量到工作空间help在命令窗口查询函数或命令1.MATLAB常用命令doc打开联机帮助系统demo运行演示程序lookfor在帮助系统中查找关键词what列出当前目录下与MATLAB有关的文件which查找函数与文件所在的目录type列出文件的内容delete删除文件path设置或查询MATLAB搜索路径quit/exit退出MATLAB1.MATLAB常用命令edit打开M文件编辑器ver查看MATLAB、Simulink和工具箱的版本cd进入某一目录ls/dir列出当前目录的文件和文件夹pwd显示当前目录dos执行dos命令并返回结果exist指定变量或文件是否存在fprintf打印文本到文件或命令窗口sprintf格式化字符串1.MATLAB常用命令 my_func=sin my_m=magic(3)your_m=1,2;3,4 who whos clear my*whos a=magic(3)format hex format awho,whos,clear,formatdoc imresizehelp sin1.MATLAB常用命令save/load:a=magic(3)save abc a clear a load abc a ls/dir ls*.m ls_s=ls;dir_s=dir what_s=what pwd/addpath,sprintf,fprintf s=pwd addpath(s)w=what;s=sprintf(当前目录%s包含%d个M文件,pwd,length(w.m);s fprintf(当前目录%s 包含%d 个M文件,pwd,length(w.m)2.矩阵生成和基本运算 a=zeros(3,4,uint16)zeros:全零矩阵:全零矩阵 class(a)a=magic(3)ones:全:全1矩阵矩阵 b=ones(size(a)a=magic(4)magic:魔方矩阵:魔方矩阵 sum(a,2)sum(a,1)trace(a)2.矩阵生成和基本运算 eye(3)eye:单位矩阵:单位矩阵 eye(3,2)rng(2);rng:设置随机数种子:设置随机数种子 a=rand(3,3)rand:0-1之间均匀分布的随机数之间均匀分布的随机数 b=a*(100-10)+10 rng(2);a=rand(3,3)2.矩阵生成和基本运算 randn(seed,2)randn:(:(0,1)正态分布随机数正态分布随机数 randn(2,3)rng(2,v4)rng:设置随机数种子:设置随机数种子 randn(2,3)randn(state,2)state randn(2,3)rng(2,v5normal)randn(2,3)a=1+randn(2,3)*10%均值为1,标准差为10的正态分布随机数 2.矩阵生成和基本运算 a=colon(1,0.5,10)N=length(a)b=linspace(1,10,N)colon(1,-1)%当ab,应采用colon(a,step,b)的形式,否则返回空矩阵 linspace函数用于产生线性等分向量2.矩阵生成和基本运算 a=linspace(1,100,50);%a为线性等分向量 b=logspace(0,2,50);%b为对数等分向量 plot(a,a,o);%在线性坐标下绘制两者的示意图 hold on;plot(a,b,r+)legend(linspace,logspace);title(线性坐标下)figure;%在对数坐标下绘制两者的示意图 semilogy(a,a,o);hold on;semilogy(a,b,r+)legend(linspace,logspace);title(对数坐标下)linspace和logspace的区别2.矩阵生成和基本运算 randperm(10)%110整数的随机排列 perms(1:3)%向量1,2,3的所有排列,共有3*2*2=6种 rng(2)randi(6,3,3)rng(2)a=rand(3,3)*6 ceil(a)randperm 生成随机整数排列 randi:生成随机整数2.矩阵生成和基本运算 rng(2);a=randi(9,3,4)range(a)range(a,2)range(a(:)rng(2);minmax(a)x=nndata(1;2,3,4)mm=minmax(x)mm1 mm2range 向量的范围 minmax:向量的最大值和最小值2.矩阵生成和基本运算max(X,DIM):沿着DIM指定的维度计算X的最大值。min(X,DIM):沿着DIM指定的维度计算X的最小值。mean(X,DIM):沿着DIM指定的维度计算X的平均值。最大值、最小值、平均值 a=1:15 a=reshape(a,3,5)max(a)min(a,2)min(a,2)mean(a,2)2.矩阵生成和基本运算维度相关 z=zeros(3,2,4);s=size(z)d1,d2=size(z)d1,d2,d3=size(z)z1=size(z,2)l=length(z)max(size(z)函数名称功能size返回数组每个维度的大小length返回最大的维度numel返回元素个数ndims返回维度的个数 l=length(z(:,:,1)n=numel(z)prod(size(z)ndims(z)length(size(z)2.矩阵生成和基本运算sum/prod a=ones(2,3,2,uint8);s1=sum(a)s2=sum(a,2)whos a=single(a);s3=sum(a,native)whos prod(a)%对第一个维度求乘积 prod(a,2)%对第二个维度求乘积保持数据类型不变2.矩阵生成和基本运算var/std 求方差与标准差:S=var(X,W,DIM)rng(3)a=rand(5,100);mean(a,2)v1=var(a,0,2)v1*12 v2=var(a(:)v2*12均匀分布元素的方差2.矩阵生成和基本运算diag 生成对角矩阵:由向量生成矩阵,从矩阵中抽取向量 a=1:5;a=a;a=repmat(a,1,5)s1=diag(a,0)s2=diag(a,1)s3=diag(a,-1)ss1=diag(s1)ss2=diag(s2,-1)ss3=diag(s3,1)s=ss1+ss2+ss3 2.矩阵生成和基本运算repmat reshape:矩阵的重复和重排 a=1,2,3;4,5,6 a1=repmat(a,2,1)a1=repmat(a,2,2)tic;a=zeros(100,100);toc%分配较小的矩阵,repmat用时较多 tic;a=repmat(0,100,100);toc tic;a=zeros(10000,1000);toc%分配大矩阵时,repmat用时较少 tic;a=repmat(0,10000,1000);toc a=rand(4,3,2)b=reshape(a,4,6)2.矩阵生成和基本运算inv/pinv 矩阵求逆/求伪逆 a=3,2,4;1,1,1;0,4,1 b=2,2,5 inv(a)*b inv求逆 a(-1)*b -1次幂 ab 左除 c=a,b inv(c)d=pinv(c)c*d*c 2.矩阵生成和基本运算rank/det 求矩阵的秩/行列式 a=magic(3)r=rank(a)秩 det(a)行列式 inv(a)2.矩阵生成和基本运算eig 矩阵的特征值分解 a=magic(3)V,D=eig(a)V1=V(:,1)D1=D(1)a*V1%验证公式X*V=d*V D1*V1 a=magic(3)u,s,v=svd(a);u*s*v pinv(a)b=v*(diag(1./diag(s)*u svd 矩阵的奇异值分解 2.矩阵生成和基本运算norm 求向量或矩阵的范数 x=1:5 norm(x,1)norm(x,Inf)norm(x,-Inf)norm(x,2)sqrt(sum(x.2)2.矩阵生成和基本运算当输入参数为矩阵时:norm(X,1):矩阵的1-范数,即列和范数,矩阵X每一列元素绝对值之和的最大值。norm(X,2):矩阵的无穷范数,即行和范数,矩阵X的每一行元素绝对值之和的最大值。norm(X,2):矩阵X的最大奇异值,即谱范数。谱范数可以通过下面的代码代替:V,d=eig(X*X);f=sqrt(max(diag(d);norm(X,fro):求矩阵X的Frobenius范数,公式如下 x=rand(3)norm(x,1)max(sum(abs(x),1)norm(x,Inf)max(sum(abs(x),2)norm(x,2)V,d=eig(x*x);sqrt(max(diag(d)norm(x,fro)sqrt(sum(x(:).2)3.数学函数abs 求绝对值 exp/log 指数函数/对数函数 abs(-5)abs(1+i)x=1:.2:10;plot(x,exp(x);指数函数 plot(x,log(x)对数函数3.数学函数log10/log2 常用对数/以2对底的对数 a=1:16 f,e=log2(a)x=logspace(0,2)+0.1;y1=log10(x);y2=log2(x);plot(x,y1,-);hold on;plot(x,y2,-);legend(log10,log2);grid on3.数学函数取整函数 a=rand(1,6)*10-5 z1=fix(a)z2=round(a)z2=floor(a)z2=ceil(a)函数名称功能fix向零的方向取整round四舍五入取整ceil向正无穷方向取整floor向负无穷方向取整3.数学函数mod/rem 取模数/余数:rem的 余 数 与 X相 同,mod与Y相同 mod(5,3)rem(5,3)rem(5,-3)mod(5,-3)4.图形相关函数 plot stem subplot:子窗口 mesh/surf:三维网格面或曲面 plot3:三维曲线 hold:保持plot(x,y)plot(x,y,ro,LineWidth,2)plot(x1,y1,x2,y2):绘制两条曲线r g b y w k c mk4.图形相关函数 x=1:10;y1=x;y2=sin(x)+x/3;y3=cos(x)+x/3;y4=x.2/10;y5=exp(sqrt(x)/100;plot(x,y1,r-,x,y2,-b,x,y3,m:*,x,y4,.-k);hold on plot(x,y5,go-);hold off legend(直线,正弦,余弦,平方,指数)title(曲线)xlabel(x)ylabel(y)axis(1,10,-1,10)set(gcf,color,w)4.图形相关函数meshgrid的用法 x=-5:.2:5;y=x;xx,yy=meshgrid(x,y);z=peaks(xx,yy);mesh(xx,yy,z)x=0:2;y=x;xx,yy=meshgrid(x,y)xx=0 1 2 0 1 2 0 1 2yy=0 0 0 1 1 1 2 2 24.图形相关函数stem函数 subplot的用法:subplot(m,n,p)共m行n列,选中第p个窗口 x=0:.5:10;y1=x;y2=sin(x)+x/3;y3=cos(x)+x/3;y4=x.2/10;subplot(221);plot(x,y1,r-);subplot(222);plot(x,y2,-b);subplot(223);plot(x,y3,m:*);subplot(224);plot(x,y4,.-k);5.神经网络工具箱MATLAB R2011b的神经网络工具箱版本号为Version 7.0.2 help nnet 函数名称新版本中的函数功能newpperceptron创建感知器网感知器网络络newlind设计线线性性层层newlinlinearlayer创建线性层newfffeedforwardnet创建前前馈馈BP网网络络newcfcascadeforwardnet创建多层前馈BP网络newfftd创建前馈输入延迟BP网络newrb设计径向基网径向基网络络newrbe设计严格的径向基网络newgrnn设计广义回归神经网络5.神经网络工具箱newpnn设计概率神概率神经经网网络络newccompetlayer创建竞竞争争层层newsomselforgmap创建自自组织组织特征映射特征映射newhop创建Hopfield递归递归网网络络newelmelmannet创建Elman递归递归网网络络lvqnet创建学学习习向量量化网向量量化网络络patternnet创建模式模式识别识别神神经经网网络络工具解决的问题说明nctool聚类问题主要采用自组织特征映射网络实现nftool拟合问题使用fitnet函数,采用trainlm进行训练nprtool模式识别问题使用patternnet函数ntstool时间序列问题使用narnet与narxnet函数谢谢大家!