matlab程序設(shè)計(jì)基礎(chǔ)課件_第1頁(yè)
matlab程序設(shè)計(jì)基礎(chǔ)課件_第2頁(yè)
matlab程序設(shè)計(jì)基礎(chǔ)課件_第3頁(yè)
matlab程序設(shè)計(jì)基礎(chǔ)課件_第4頁(yè)
matlab程序設(shè)計(jì)基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)2matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)matlab1223344和其他語(yǔ)言一樣,MATLAB的程序結(jié)構(gòu)也不外三種:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。5、程序結(jié)構(gòu)和流程控制5.1順序結(jié)構(gòu)順序結(jié)構(gòu)即指順序往下執(zhí)行的程序語(yǔ)句結(jié)構(gòu),其實(shí)也就是一組復(fù)合的表達(dá)式。在MATLAB中,表達(dá)式之間可以用分號(hào)、逗號(hào)或換行來(lái)分隔。如前例的函數(shù)文件summ.m和命令文件use.m均為順序結(jié)構(gòu)。5.2分支結(jié)構(gòu)1、MATLAB的分支結(jié)構(gòu)5和其他語(yǔ)言一樣,MATLAB的程序結(jié)構(gòu)也不外三種:順序結(jié)構(gòu)、2、分支結(jié)構(gòu)的語(yǔ)句形式及實(shí)例分支結(jié)構(gòu)就是由邏輯判斷決定程序執(zhí)行流轉(zhuǎn)方向的一種結(jié)構(gòu)?,F(xiàn)有if.else.end和switch.case.end兩種形式。第一類分支結(jié)構(gòu)采用的語(yǔ)句形式有3種:if表達(dá)式語(yǔ)句組1endif表達(dá)式語(yǔ)句組1else

語(yǔ)句組2endif表達(dá)式A

語(yǔ)句組1elseif表達(dá)式B

語(yǔ)句組2else

語(yǔ)句組3end注意:除直接應(yīng)用上述三種形式外,第3種結(jié)構(gòu)可擴(kuò)展,if

還可以嵌套。62、分支結(jié)構(gòu)的語(yǔ)句形式及實(shí)例分支結(jié)構(gòu)就是由邏輯判斷決定程序執(zhí)舉例:例5.1輸入數(shù)n,判斷其奇偶性。程序式書(shū)寫法:*

n=input(‘n=’);ifrem(n,2)==0A=‘even’elseA=‘odd’end更完善的程序式書(shū)寫法:

n=input(‘n=’);ifisempty(n)==1A=‘empty’elseifrem(n,2)==0A=‘even’elseA=‘odd’end命令行書(shū)寫法:

n=input(‘n=’);ifisempty(n)==1A=‘empty’,elseifrem(n,2)==0;A=‘even’,else,A=‘odd’,end7舉例:命令行書(shū)寫法:7例5.2寫程序,判斷某一年是否閏年*。C語(yǔ)言程序:main(){intyear,leap;scanf(“%d”,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.\n”);}MATLAB程序:year=input('year=');ifrem(year,4)==0ifrem(year,100)==0ifrem(year,400)==0leap=1;elseleap=0;endelseleap=1;endelseleap=0;endifleapdisplay('isaleapyear')elsedisplay('isnotaleapyear')end8例5.2寫程序,判斷某一年是否閏年*。C語(yǔ)言程序:MAswitch表達(dá)式case值1語(yǔ)句組1case值2語(yǔ)句組2……otherwise語(yǔ)句組n第二類分支結(jié)構(gòu)采用的語(yǔ)句形式如下:注意:switch后的表達(dá)式的結(jié)果值,通常為標(biāo)量或字符串。9switch表達(dá)式第二類分支結(jié)構(gòu)采用的語(yǔ)句形式如下:舉例:例5.3用switch語(yǔ)句改寫例3.1。程序式書(shū)寫法:

n=input(‘n=’);switchmod(n,2)*case1A=‘奇’

case0A=‘偶’

otherwiseA=‘空’

end10舉例:程序式書(shū)寫法:10例5.4給出一百分制成績(jī),要求輸出成績(jī)等級(jí)‘A’、‘B’、‘C’、‘D’、‘E’。90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分以下為‘E’。C語(yǔ)言程序:main(){intscore,g;scanf(“%d”,&score);g=score/10;switch(g){case10:case9:printf(“A\n”);break;case8:printf(“B\n”);break;case7:printf(“C\n”);break;case6:printf(“D\n”);break;default:printf(“E\n”);}}MATLAB程序:score=input('score=');g=round(score/10-0.5);ifg==10display('A')elseswitchgcase9,display('A')case8,display('B')case7,display('C')case6,display('D')otherwisedisplay('E')endend11例5.4給出一百分制成績(jī),要求輸出成績(jī)等級(jí)‘A’、‘1、MATLAB的循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)就是執(zhí)行重復(fù)運(yùn)算的一段程序。MATLAB的循環(huán)語(yǔ)句有for.end和while.end兩種形式。2、循環(huán)結(jié)構(gòu)的語(yǔ)句形式及實(shí)例5.3循環(huán)結(jié)構(gòu)For循環(huán)結(jié)構(gòu)的語(yǔ)句形式:for變量=初值:[增量]:終值語(yǔ)句組end

注意:for

還可以嵌套。121、MATLAB的循環(huán)結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)For循環(huán)結(jié)構(gòu)的舉例:例5.5列出構(gòu)成Hilbert矩陣的程序。

clear,closeallformatrat,n=input(‘n=‘),fori=1:nforj=1:nh(i,j)=1/(i+j-1);endendh

13舉例:13例5.6求100~200間的全部素?cái)?shù)*。C語(yǔ)言程序:#include<math.h>main(){intm,k,i,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf(“%d”,m);n=n+1;}}}MATLAB程序:n=0;x=1:21;form=101:2:200k=round(sqrt(m+1)-0.5);fori=2:kifrem(m,i)==0break,endj=i+1;ifj>=k+1n=n+1;x(n)=m;endendendx14例5.6求100~200間的全部素?cái)?shù)*。C語(yǔ)言程序:While循環(huán)結(jié)構(gòu)的語(yǔ)句形式:while表達(dá)式語(yǔ)句組end注意:while

語(yǔ)句中的表達(dá)式通常為關(guān)系表達(dá)式或邏輯表達(dá)式。舉例:例5.7求如下級(jí)數(shù)的和:1+1/2+1/3+1/4+…+1/100。

s=0;n=1;whilen<=100s=s+1/n;n=n+1;end,s15While循環(huán)結(jié)構(gòu)的語(yǔ)句形式:while表達(dá)式注意例5.8用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止。C語(yǔ)言程序:#include<math.h>main(){ints;floatn,t,pi;t=1,pi=0;n=1.0;s=1;while((fabs(t))>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(“pi=%10.6f\n”,pi);}MATLAB程序:t=1;pi=0;n=1;s=1;whileabs(t)>1e-6pi=pi+t;n=n+2;s=-s;t=s/n;endpi=4*pi16例5.8用π/4≈1-1/3+1/5-1/7+…公匿名函數(shù)可以接受多個(gè)輸入輸出參數(shù)。創(chuàng)建匿名函數(shù)的格式:

fhandle=@(arglist)expr其中:“expr”通常是一個(gè)簡(jiǎn)單的MATLAB變量表達(dá)式,實(shí)現(xiàn)函數(shù)的功能;“arglist”是參數(shù)列表;“@”是MATLAB中創(chuàng)建函數(shù)句柄的操作符.匿名函數(shù)實(shí)例:>>myfhd1=@(x)(x+x.^2)>>myfhd1(2)ans=6>>myfhd2=@(x,y)(sin(x)+cos(y))>>myfhd2(pi/2,pi/6)ans=1.8660每一個(gè)M文件第一行定義的文件就是M文件主函數(shù),一個(gè)M文件只能包含一個(gè)主函數(shù),通常將M文件名和M文件主函數(shù)名設(shè)為一致。在一個(gè)函數(shù)內(nèi)部可以定義一個(gè)或多個(gè)函數(shù),這種定義在其他函數(shù)內(nèi)部的函數(shù)被成為嵌套函數(shù)。嵌套函數(shù)的書(shū)寫語(yǔ)法格式如下:functionx=A(p1,p2)…functiony=B(p3)…endend嵌套函數(shù)的互相調(diào)用需要注意和嵌套的層次密切相關(guān),例:functionA(x,y)%外層函數(shù)A(例如主函數(shù))

B(x,y);D(y);functionB(x,y)%A的嵌套函數(shù)(B的父函數(shù)為A)

C(x);D(y);functionC(x)%B的嵌套函數(shù)(C的父函數(shù)為B)

D(x);endend

17匿名函數(shù)可以接受多個(gè)輸入輸出參數(shù)。創(chuàng)建匿名函數(shù)的格式:匿名函18181919202021212222232324242525262627272828292930303131323233333434353536363737383839394040實(shí)例1matlab神經(jīng)網(wǎng)絡(luò)工具箱41實(shí)例1matlab神經(jīng)網(wǎng)絡(luò)工具箱411.1網(wǎng)絡(luò)數(shù)據(jù)對(duì)象的建立net=newff([xm,xM],[h1,…,hk],{f1,…,fk});xm,xM分別為列向量(行數(shù)為變量個(gè)數(shù)),分別存儲(chǔ)每個(gè)變量的最小值和最大值。[h1,…,hk]表示網(wǎng)絡(luò)各層的節(jié)點(diǎn)數(shù),一共有k層.{f1,…,fk}表示各層使用的傳輸函數(shù),默認(rèn)為’tansig’,即Sigmoid函數(shù)。還可使用函數(shù)’purelin’,即f(x)=x。其它可看matlab幫助:helpnewff421.1網(wǎng)絡(luò)數(shù)據(jù)對(duì)象的建立net=newff([xm,xM]1.2網(wǎng)絡(luò)數(shù)據(jù)對(duì)象net的屬性net.IW:來(lái)自輸入層的加權(quán)矩陣。BP網(wǎng)絡(luò)只用net.IW{1},表示各個(gè)輸入變量對(duì)第1層各節(jié)點(diǎn)的加權(quán)矩陣。net.LW:來(lái)自中間層的加權(quán)向量。BP網(wǎng)絡(luò)用net.IW{2,1}表示第1隱層個(gè)節(jié)點(diǎn)向下一層個(gè)節(jié)點(diǎn)的加權(quán)矩陣;net.IW{3,2}表示第2隱層向下一層的加權(quán)矩陣…net.b:各層的偏移。Net.b{1}表示第1隱層個(gè)節(jié)點(diǎn)的偏移…431.2網(wǎng)絡(luò)數(shù)據(jù)對(duì)象net的屬性net.IW:來(lái)自輸入層的加net.trainParam.epochs:最大訓(xùn)練步數(shù)。不過(guò)當(dāng)誤差準(zhǔn)則滿足時(shí),即使沒(méi)達(dá)到此步數(shù)也停止訓(xùn)練。缺省為100。net.trainParam.goad:網(wǎng)絡(luò)誤差準(zhǔn)則,當(dāng)誤差小于此準(zhǔn)則時(shí)停止訓(xùn)練,缺省為0。net.trainFcn:訓(xùn)練算法。缺省為’trainlm’,即Levenberg-Marquardt算法。還可使用‘traingdx’,即帶動(dòng)量的梯度下降算法;’traincgf’,即共軛梯度法。其它可看matlab幫助:help->contents->NeuralNetworkToobox->NetworkObjectReference;help(net.trainFcn)44net.trainParam.epochs:最大訓(xùn)練步數(shù)。不1.3網(wǎng)絡(luò)的訓(xùn)練[net,tr,Y1,E]=train(net,X,Y);net是函數(shù)newff建立的數(shù)據(jù)對(duì)象。X為n*m的矩陣,n為輸入變量個(gè)數(shù),m為樣本數(shù)(即把每個(gè)樣本是一個(gè)列向量)。Y為k*m的矩陣,k為數(shù)出變量個(gè)數(shù)。tr返回訓(xùn)練的跟蹤信息,tr.epochs為訓(xùn)練步數(shù),tr.perf為各步目標(biāo)函數(shù)的值。Y1和E返回網(wǎng)絡(luò)最終的輸出和誤差。訓(xùn)練結(jié)束后可以用plotperf(tr)來(lái)繪制目標(biāo)值隨著訓(xùn)練步數(shù)變化的曲線。451.3網(wǎng)絡(luò)的訓(xùn)練[net,tr,Y1,E]=train(n1.4網(wǎng)絡(luò)的泛化(預(yù)測(cè))Y=sim(net,X);net是函數(shù)newff建立的數(shù)據(jù)對(duì)象。X為n*m的矩陣,n為輸入變量個(gè)數(shù),m為樣本數(shù)(即把每個(gè)樣本是一個(gè)行向量)。Y為k*m的矩陣,k為數(shù)出變量個(gè)數(shù)。461.4網(wǎng)絡(luò)的泛化(預(yù)測(cè))Y=sim(net,X);462例子:神經(jīng)網(wǎng)絡(luò)函數(shù)擬合(預(yù)測(cè))試構(gòu)造合適的神經(jīng)網(wǎng)絡(luò)模型擬合如下數(shù)據(jù)點(diǎn),并預(yù)測(cè)x=10的值:x00.511.522.533.544.5y00.430.690.740.610.360.08-0.17-0.34-0.4x55.566.577.588.599.5y-0.35-0.23-0.080.060.160.210.20.150.07-0.01472例子:神經(jīng)網(wǎng)絡(luò)函數(shù)擬合(預(yù)測(cè))試構(gòu)造合適的神經(jīng)網(wǎng)絡(luò)模型擬matlab代碼x=0:0.5:9.5;y=[0,0.43,0.69,0.74,0.61,0.36,0.08,-0.17,-0.34,-0.4,-0.35,-0.23,-0.08,0.06,0.16,0.21,0.2,0.15,0.07];net=newff([0,9.5],[5,1]);net.trainParam.epochs=100;net.trainParam.goad=0.000001;net=train(net,x,y);x1=0:0.1:10;y1=sim(net,x1);figure;plot(x,y,'.');holdon;plot(x1,y1,'r');48matlab代碼x=0:0.5:9.5;4849495050謝謝!謝謝!51matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)2matlab程序設(shè)計(jì)基礎(chǔ)matlab程序設(shè)計(jì)基礎(chǔ)matlab52532543554和其他語(yǔ)言一樣,MATLAB的程序結(jié)構(gòu)也不外三種:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。5、程序結(jié)構(gòu)和流程控制5.1順序結(jié)構(gòu)順序結(jié)構(gòu)即指順序往下執(zhí)行的程序語(yǔ)句結(jié)構(gòu),其實(shí)也就是一組復(fù)合的表達(dá)式。在MATLAB中,表達(dá)式之間可以用分號(hào)、逗號(hào)或換行來(lái)分隔。如前例的函數(shù)文件summ.m和命令文件use.m均為順序結(jié)構(gòu)。5.2分支結(jié)構(gòu)1、MATLAB的分支結(jié)構(gòu)56和其他語(yǔ)言一樣,MATLAB的程序結(jié)構(gòu)也不外三種:順序結(jié)構(gòu)、2、分支結(jié)構(gòu)的語(yǔ)句形式及實(shí)例分支結(jié)構(gòu)就是由邏輯判斷決定程序執(zhí)行流轉(zhuǎn)方向的一種結(jié)構(gòu)?,F(xiàn)有if.else.end和switch.case.end兩種形式。第一類分支結(jié)構(gòu)采用的語(yǔ)句形式有3種:if表達(dá)式語(yǔ)句組1endif表達(dá)式語(yǔ)句組1else

語(yǔ)句組2endif表達(dá)式A

語(yǔ)句組1elseif表達(dá)式B

語(yǔ)句組2else

語(yǔ)句組3end注意:除直接應(yīng)用上述三種形式外,第3種結(jié)構(gòu)可擴(kuò)展,if

還可以嵌套。572、分支結(jié)構(gòu)的語(yǔ)句形式及實(shí)例分支結(jié)構(gòu)就是由邏輯判斷決定程序執(zhí)舉例:例5.1輸入數(shù)n,判斷其奇偶性。程序式書(shū)寫法:*

n=input(‘n=’);ifrem(n,2)==0A=‘even’elseA=‘odd’end更完善的程序式書(shū)寫法:

n=input(‘n=’);ifisempty(n)==1A=‘empty’elseifrem(n,2)==0A=‘even’elseA=‘odd’end命令行書(shū)寫法:

n=input(‘n=’);ifisempty(n)==1A=‘empty’,elseifrem(n,2)==0;A=‘even’,else,A=‘odd’,end58舉例:命令行書(shū)寫法:7例5.2寫程序,判斷某一年是否閏年*。C語(yǔ)言程序:main(){intyear,leap;scanf(“%d”,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.\n”);}MATLAB程序:year=input('year=');ifrem(year,4)==0ifrem(year,100)==0ifrem(year,400)==0leap=1;elseleap=0;endelseleap=1;endelseleap=0;endifleapdisplay('isaleapyear')elsedisplay('isnotaleapyear')end59例5.2寫程序,判斷某一年是否閏年*。C語(yǔ)言程序:MAswitch表達(dá)式case值1語(yǔ)句組1case值2語(yǔ)句組2……otherwise語(yǔ)句組n第二類分支結(jié)構(gòu)采用的語(yǔ)句形式如下:注意:switch后的表達(dá)式的結(jié)果值,通常為標(biāo)量或字符串。60switch表達(dá)式第二類分支結(jié)構(gòu)采用的語(yǔ)句形式如下:舉例:例5.3用switch語(yǔ)句改寫例3.1。程序式書(shū)寫法:

n=input(‘n=’);switchmod(n,2)*case1A=‘奇’

case0A=‘偶’

otherwiseA=‘空’

end61舉例:程序式書(shū)寫法:10例5.4給出一百分制成績(jī),要求輸出成績(jī)等級(jí)‘A’、‘B’、‘C’、‘D’、‘E’。90分以上為‘A’,80~89分為‘B’,70~79分為‘C’,60~69分為‘D’,60分以下為‘E’。C語(yǔ)言程序:main(){intscore,g;scanf(“%d”,&score);g=score/10;switch(g){case10:case9:printf(“A\n”);break;case8:printf(“B\n”);break;case7:printf(“C\n”);break;case6:printf(“D\n”);break;default:printf(“E\n”);}}MATLAB程序:score=input('score=');g=round(score/10-0.5);ifg==10display('A')elseswitchgcase9,display('A')case8,display('B')case7,display('C')case6,display('D')otherwisedisplay('E')endend62例5.4給出一百分制成績(jī),要求輸出成績(jī)等級(jí)‘A’、‘1、MATLAB的循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)就是執(zhí)行重復(fù)運(yùn)算的一段程序。MATLAB的循環(huán)語(yǔ)句有for.end和while.end兩種形式。2、循環(huán)結(jié)構(gòu)的語(yǔ)句形式及實(shí)例5.3循環(huán)結(jié)構(gòu)For循環(huán)結(jié)構(gòu)的語(yǔ)句形式:for變量=初值:[增量]:終值語(yǔ)句組end

注意:for

還可以嵌套。631、MATLAB的循環(huán)結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)For循環(huán)結(jié)構(gòu)的舉例:例5.5列出構(gòu)成Hilbert矩陣的程序。

clear,closeallformatrat,n=input(‘n=‘),fori=1:nforj=1:nh(i,j)=1/(i+j-1);endendh

64舉例:13例5.6求100~200間的全部素?cái)?shù)*。C語(yǔ)言程序:#include<math.h>main(){intm,k,i,n=0;for(m=101;m<=200;m=m+2){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf(“%d”,m);n=n+1;}}}MATLAB程序:n=0;x=1:21;form=101:2:200k=round(sqrt(m+1)-0.5);fori=2:kifrem(m,i)==0break,endj=i+1;ifj>=k+1n=n+1;x(n)=m;endendendx65例5.6求100~200間的全部素?cái)?shù)*。C語(yǔ)言程序:While循環(huán)結(jié)構(gòu)的語(yǔ)句形式:while表達(dá)式語(yǔ)句組end注意:while

語(yǔ)句中的表達(dá)式通常為關(guān)系表達(dá)式或邏輯表達(dá)式。舉例:例5.7求如下級(jí)數(shù)的和:1+1/2+1/3+1/4+…+1/100。

s=0;n=1;whilen<=100s=s+1/n;n=n+1;end,s66While循環(huán)結(jié)構(gòu)的語(yǔ)句形式:while表達(dá)式注意例5.8用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止。C語(yǔ)言程序:#include<math.h>main(){ints;floatn,t,pi;t=1,pi=0;n=1.0;s=1;while((fabs(t))>1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(“pi=%10.6f\n”,pi);}MATLAB程序:t=1;pi=0;n=1;s=1;whileabs(t)>1e-6pi=pi+t;n=n+2;s=-s;t=s/n;endpi=4*pi67例5.8用π/4≈1-1/3+1/5-1/7+…公匿名函數(shù)可以接受多個(gè)輸入輸出參數(shù)。創(chuàng)建匿名函數(shù)的格式:

fhandle=@(arglist)expr其中:“expr”通常是一個(gè)簡(jiǎn)單的MATLAB變量表達(dá)式,實(shí)現(xiàn)函數(shù)的功能;“arglist”是參數(shù)列表;“@”是MATLAB中創(chuàng)建函數(shù)句柄的操作符.匿名函數(shù)實(shí)例:>>myfhd1=@(x)(x+x.^2)>>myfhd1(2)ans=6>>myfhd2=@(x,y)(sin(x)+cos(y))>>myfhd2(pi/2,pi/6)ans=1.8660每一個(gè)M文件第一行定義的文件就是M文件主函數(shù),一個(gè)M文件只能包含一個(gè)主函數(shù),通常將M文件名和M文件主函數(shù)名設(shè)為一致。在一個(gè)函數(shù)內(nèi)部可以定義一個(gè)或多個(gè)函數(shù),這種定義在其他函數(shù)內(nèi)部的函數(shù)被成為嵌套函數(shù)。嵌套函數(shù)的書(shū)寫語(yǔ)法格式如下:functionx=A(p1,p2)…functiony=B(p3)…endend嵌套函數(shù)的互相調(diào)用需要注意和嵌套的層次密切相關(guān),例:functionA(x,y)%外層函數(shù)A(例如主函數(shù))

B(x,y);D(y);functionB(x,y)%A的嵌套函數(shù)(B的父函數(shù)為A)

C(x);D(y);functionC(x)%B的嵌套函數(shù)(C的父函數(shù)為B)

D(x);endend

68匿名函數(shù)可以接受多個(gè)輸入輸出參數(shù)。創(chuàng)建匿名函數(shù)的格式:匿名函69187019712072217322742375247625772678277928802981308231833284338534863587368837893890399140實(shí)例1matlab神經(jīng)網(wǎng)絡(luò)工具箱92實(shí)例1matlab神經(jīng)網(wǎng)絡(luò)工具箱411.1網(wǎng)絡(luò)數(shù)據(jù)對(duì)象的建立net=newff([xm,xM],[h1,…,hk],{f1,…,fk});xm,xM分別為列向量(行數(shù)為變量個(gè)數(shù)),分別存儲(chǔ)每個(gè)變量的最小值和最大值。[h1,…,hk]表示網(wǎng)絡(luò)各層的節(jié)點(diǎn)數(shù),一共有k層.{f1,…,fk}表示各層使用的傳輸函數(shù),默認(rèn)為’tansig’,即Sigmoid函數(shù)。還可使用函數(shù)’purelin’,即f(x)=x。其它可看matlab幫助:helpnewff931.1網(wǎng)絡(luò)數(shù)據(jù)對(duì)象的建立net=newff([xm,xM]1.2網(wǎng)絡(luò)數(shù)據(jù)對(duì)象net的屬性net.IW:來(lái)自輸入層的加權(quán)矩陣。BP網(wǎng)絡(luò)只用net.IW{1},表示各個(gè)輸入變量對(duì)第1層各節(jié)點(diǎn)的加權(quán)矩陣。net.LW:來(lái)自中間層的加權(quán)向量。BP網(wǎng)絡(luò)用net.IW{2,1}表示第1隱層個(gè)節(jié)點(diǎn)向下一層個(gè)節(jié)點(diǎn)的加權(quán)矩陣;net.IW{3,2}表示第2隱層向下一層的加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論