MATLAB的循環結構


 高質量學習資源免費獲取,專注但不限於【Linux】【C/C++/Qt】【FPGA】【數據結構與算法】, 根據多年技術經驗純【原創】,純【干貨】,分享【技術心得】,力求【授人以魚,更授人以漁】。

  循環結構有兩種基本形式:while 循環和for 循環。兩者之間的最大不同在於代碼的重復是如何控制的。在while 循環中,代碼的重復的次數是不能確定的,只要滿足用戶定義的條件,重復就進行下去。相對地,在for 循環中,代碼的重復次數是確定的,在循環開始之前,我們就知道代碼重復的次數了。

 while 循環:只要滿足一定的條件,While 循環是一個重復次數不能確定的語句塊。它的基本形如下

    while expression                                          ( 如果expression 的值非零(true),程序將執行代碼塊(code block),然后返回到while 語句
      ...                                                            執行。如果expression 的值仍然非零,那么程序將會再次執行代碼。直到expression 的值變
      ...    。。。。code block                              為0,這個重復過程結束。當程序執行到while 語句且expression 的值為0 之后,程序將會
      ...                        執行end 后面的第一個語句。)
    end

    while 循環的偽代碼為:
            while expr
              ...
              ...
                ...
            end

  for循環:for 循環結構是另一種循環結構,它以指定的數目重復地執行特定的語句塊。For 循環的形式如下

     for index = expr
        Statement 1           其中index 是循環變量(就是我們所熟知的循環指數),exp 是循環控制表達式。變量index其中index 是循環變量(就                    
        ... Body            。。。。。Body    是我們所熟知的循環指數),exp 是循環控制表達式。變量index讀取的是數組expr 的行數,然后程序執行循環體                                            Statement n           (loopbody)所以expr 有多少列,循環體就循環多少次。expr 經常用捷徑表達式的]方式,即first:incr:last。
     end

在for 和end 之前的語句我們稱之為循環體。在for 循環運轉的過程中,它將被重復的執行。For 循環結構函數如下:
      1.在for 循環開始之時,MATLAB 產生了控制表達式
      2.第一次進入循環,程序把表達式的第一列賦值於循環變量index,然后執行循環體內的語句。
      3.在循環體的語句被執行后,程序把表達式的下一列賦值於循環變量index,程序將再一次執行循環體語句。
      4.只要在控制表達式中還有剩余的列,步驟3 將會一遍一遍地重復執行。我們要舉大量的例子來說明for 循環的操作。

 

在這里要注意運算的細節問題:沒有必要縮進for 循環的循環體。即使所有語句都左對齊,MATLAB 程序也會識別出這個循環。但縮進循環體能增強代碼的可讀性,所以建議大家                               縮進循環體。

                在for 循環中,我們不能隨意修改循環指數。循環指數常被用作計算器,如果修改了它們將會導致一些奇怪而難以發現的錯誤.

                在循環執行開始之前,總是要預先分配一個數組,這樣能大大增加循環運行的速度。

                那種既可以用向量可以解決的問題,也可以用循環解決的問題,最好用向量解決,這是因為向量執行的速度快。

 

break 和continue 語句:  有兩個附加語句可以控制while 和for 循環:break 和continue 語句。break 語句可以中止循環的執行和跳到end 后面的第一句執行,而                      continue 只中止本次循環,然后返回循環的頂部。如果break 語句在循環體中執行,那么體的執行中止,然后執行循環后的第一個可執行性語句.

循環嵌套:  一個循環完全出現在另一個循環當中,這種情況經常發生。如果一個循環完全出現在另一個循環當中,我們稱這兩個循環為帶嵌套的循環。

邏輯數組與向量化: MATLAB 有兩個基本類型的數據類型:數字型與字符型。數字型數據包括數字,字符型數據包含字符。除這兩個數據類型之外,還有第三類數據類:邏輯型。

          “邏輯”數據類型在MATLAB 中並不真實存在。其實,它是帶特定邏輯屬性標准數字型數據類型。邏輯型數組通過所有的關系運算符和邏輯運算符創建。它

                    們區別於數字型的是在調用whos 命令時,(logical)會出現在類型的后面。  

 

好的編程習慣總結:     1.對於for 循環體總是要縮進兩個或更多空格,以增強程序的可讀性。
                2.在循環體中絕不修改循環指數的值。
            3.在循環執行開始之前,總是要預先分配一個數組。這樣能大大增加循環運行的速度
            4.如果用可能的話,可用邏輯函數選擇數組中的元素。如果邏輯數組進行運算,要比循環快得多。
            5.如果用可能的話,可用邏輯函數選擇數組中的元素。如果邏輯數組進行運算,要比循環快得多。

MATLAB 總結:
break break       語句可以中止循環的執行和跳到end 后面的第一句執行
continue continue      語句只中止本次循環,然后返回循環的頂部。
for 循環             在for 循環中,代碼的重復次數是確定的
tic 函數          復位內建計時器
toc 函數            從最后一次調用tic 以秒開始計時
while 循環          while 循環中,代碼的重復的次數是不能確定的,只要滿足用戶定義的條件,重復就進行下去


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM