三.Matlab編程入門(mén):實(shí)例講解和討論_第1頁(yè)
三.Matlab編程入門(mén):實(shí)例講解和討論_第2頁(yè)
三.Matlab編程入門(mén):實(shí)例講解和討論_第3頁(yè)
三.Matlab編程入門(mén):實(shí)例講解和討論_第4頁(yè)
三.Matlab編程入門(mén):實(shí)例講解和討論_第5頁(yè)
已閱讀5頁(yè),還剩11頁(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)介

1、Matlab 編程:實(shí)例講解和討論1幾個(gè)函數(shù)的用法:find、tic和toc,等(掌握)結(jié)題實(shí)例和討論(重點(diǎn))編寫(xiě)高效編程代碼(掌握)主要內(nèi)容2一、幾個(gè)函數(shù)的用法(掌握)find:找到符合條件的元素所在的位置當(dāng)作用在矩陣A上,它將找到A中滿足條件的元素的角標(biāo)(是單下標(biāo)形式)x=nan,nan,1,2,inf,5,nan,inf;i = find(isnan(x) | isinf(x); % Find bad elements in xx(i) = ; % and delete themi = find(isnan(x) & isinf(x); % Find elements that are

2、not NaN and not infinitex = x(i); % Keep those elementsx(isnan(x) | isinf(x) = ; % Delete bad elementstic和toc用來(lái)得到程序運(yùn)行所花費(fèi)時(shí)間3二、實(shí)例講解和討論例:編寫(xiě)m函數(shù),當(dāng)輸入一個(gè)變量x時(shí)能自動(dòng)根據(jù)x值來(lái)計(jì)算函數(shù)值 x (x1) 2x-1 (1x=10)第1節(jié)If的使用4 輸入三角形的三條邊,求面積?!緮?shù)學(xué)基礎(chǔ):當(dāng)輸入邊長(zhǎng)A(1),A(2),A(3)滿足關(guān)系任意兩邊之和大于第三邊時(shí)能夠構(gòu)成三角形,三角形面積等于s=sqrt(p*(p-A(1)*(p-A(2)*(p-A(3);其中 p=

3、(A(1)+A(2)+A(3)/2;】 A=input(請(qǐng)輸入三角形的三條邊:); if A(1)+A(2)A(3) & A(1)+A(3)A(2) & A(2)+A(3)A(1) p=(A(1)+A(2)+A(3)/2; s=sqrt(p*(p-A(1)*(p-A(2)*(p-A(3); disp(s); else disp(不能構(gòu)成一個(gè)三角形。) end5例題:將A矩陣用for循環(huán)寫(xiě)出來(lái)A = 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8說(shuō)明:For循環(huán)更傾向于在已知計(jì)算步數(shù)的情況下使用,while更多應(yīng)用在已知條件滿足情況下的循環(huán)。相比之下,while循

4、環(huán)會(huì)更加快速的收斂。二、實(shí)例講解和討論第2節(jié):for和while的使用6討論題:如何編制程序?找出A矩陣中值等于5的元素所在位置?7 sum=0; cnt=0; val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end例題:從鍵盤(pán)輸入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們之和8s=1;n=100:500;for i=1:length(n)

5、if rem(n(i),21)=0 m(s)=n(i); s=s+1; continue,endif s=6 break endenddisp(m)例題:求100,500之間前5個(gè)能被21整除的整數(shù)。請(qǐng)改成用while循環(huán)編程求解?更簡(jiǎn)潔的方法?9n=100;a=ones(1,n);for i=3:n a(i)=a(i-2)+a(i-1); if a(i)10000 a(i), break; endenddisp(i)例題:用for循環(huán)指令來(lái)尋找Fibonacc數(shù)組中第一個(gè)大于10000的元素:a(1)=1,a(2)=1,a(i)=a(i-2)+a(i-1)10for和while可以用來(lái)迭代(

6、重要)%求1,2.,100的和 s=0;for i=1:100, s=s+i;end disp(s);如何來(lái)求解數(shù)的階乘?如何使用while來(lái)做循環(huán)?已知 y=1+1/3+1/5+1/2n-1,當(dāng)n=100時(shí),求y的值?11程序閱讀a = zeros(1,80000); % Preallocationb = zeros(1,80000);a(1) = 1;b(1) = 0;for k = 2:80000a(k) = 0.99803*a(k-1)-0.06279 * b(k-1);b(k) = 0.06279*a(k-1)+0.99803 * b(k-1);end12編寫(xiě)高效編程代碼(掌握)在程

7、序編制時(shí),如果變量的大小隨著計(jì)算會(huì)擴(kuò)展,預(yù)先給變量設(shè)定好尺寸會(huì)使得代碼更加高效clear,tica = zeros(1,10000); % Preallocatecount = 0;for k = 1:10000v = exp(rand(1)*rand(1);if v 0.5 % Conditionally add to arraycount = count + 1;a(count) = v;endenda = a(1:count); % Trim the resulttoc13在實(shí)際MATLAB編程中,采用循環(huán)語(yǔ)句會(huì)降低其執(zhí)行速度,用其內(nèi)在函數(shù)批量處理大矩陣可以有效提高計(jì)算速度已知 y=1+

8、1/3+1/5+1/2n-1,當(dāng)n=100時(shí),求y的值?n=100;i=1:2:2*n-1;y=sum(1./i);矢量化運(yùn)算(1)14矢量化運(yùn)算(2)function d = minDistance(x,y,z)% Find the min distance between a set of points and the originnPoints = length(x);d = zeros(nPoints,1); % Preallocatefor k = 1:nPoints % Compute distance for every pointd(k) = sqrt(x(k)2 + y(k)2 + z(k)2);endd = min(d); % Get the minimum distancefunction d = minDistance(x,y,z)% Find the min distance between a set of points and the ori

溫馨提示

  • 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)論