MATLAB-筆記4-迴圈


Topic: for loop , while loop ,if description


---
Matlab有兩個主要的迴圈,可以用來進行大量重複運算

for迴圈及while迴圈

兩者的差異在於for迴圈的使用條件是「明確知道迴圈次數」while迴圈則是「知道執行程式碼的前提」






  • k=2:3:11 :k的起始直指定為2,之後增量為3,一直增加到11為止,所以會執行4次,分別是2→5→8→11
  • m=m+1 :功能是作為x陣列的index,所以必須從1開始
  • x(m+1)=x(m)+k^2 : 將x的第m+1個元素指定為x的第m元素+k^2
系統每執行一次,則進行k的增量改變
|心得|: for迴圈屬於一種後測式的結構,也就屬於一種「做了再說」的結構
for是在已知迴圈次數的前提下進行的運算,但是事情不盡完美,特別是許多重複性的工程問題都無法預知要做幾次,針對不知次數的情形,所以有了while迴圈

while迴圈是透過已知條件告訴電腦,讓電腦自己去判斷該不該做

用while loop執行與上一段一樣的事情,則程式改寫為:











  • k<12 :這就是一個條件,告訴電腦,只有k<12的時候才要做
    |心得|: while loop 是一個前測式迴圈,先做條件測試,再執行
  • k=k+3 : 這邊要注意的是,因為while不同於for,無法告知每次的增量,因此只好自己告訴電腦要增加多少
    |心得|: while loop內必有或至少有一行程式碼與測試條件有關

除了兩大基本迴圈,還可搭配條件判斷敘述: if 結構


  • k=input('k=') :會在畫面上跳出"k="的字串,等待使用者輸入,並將輸入的直指派給k
  • if.....elseif....else....end : 指定條件式,告知電腦,當k屬於何種情形時便執行對應動作
其實還有switch....case的相似結構,而且比較有可讀性,不過想睡覺了,有用到再寫好了

把迴圈跟條件式敘述組合再一起:



  • dt為增量,定義為35/300,這個值可以視為自變數,這個值越小,應變數越精準,所以可以將之視為解析度
  • k=1:length(x) : 這條程式其實應該寫成k=1:1:length(x),因為增量為1,所以可以省略不寫出來

    x是一個陣列,其值從-5開始,每次增加dt增量,直到30為止, length則是可以得知x內的行數或是列數的極大值,例如size(A)=3*2 ,length(A)=3

    此行同時做了兩件事:
    1.將k指定為x與y的index
    2.將k指定為for loop的執行次數

  • if...elseif...else..end :對應條件

  • plot(x,y,xlabel('x'),ylabel('y')) : 將橫軸為x縱軸為y的取縣繪製出來,後面的xlabel,ylabel則是做標註
    之後有機會用到Plot再另外寫好了~~

---
基本的終於快複習完了~~累


留言

熱門文章