Matlab变量、分支语句和循环语句
一、Matlab的變量
1、變量的命名
Matlab的變量名由數字、字母和下劃線組成,可是僅僅能由字母開頭。大寫和小寫敏感,最大長度為63個字符。不能使用Matlab的關鍵字作為變量名,應當避免使用函數名作為變量名。假設變量名採用函數名。則該函數失效。
Matlab提供了isvarname函數來驗證用戶指定的變量名是否為Matlab接受的合法變量名。該函數返回1或0,分別代表合法或者不合法。
>> isvarname('_var')ans =0>> isvarname('var_123')ans =12、變量的類型
Matlab中的變量共分為三類:局部變量、全局變量和永久變量。
局部變量不用多說,和其它的編程語言是相同的含義,局部變量存儲在函數的工作空間中,當函數調用結束之后,局部變量隨之被刪除。
全局變量在整個Matlab的工作空間中都有效。
當在一個工作空間中改變該值的時候,該變量在其余空間內的值也將被改變。全局變量的聲明格式例如以下:
>> global X_val >> X_val=3; >> X_valX_val =3永久變量能夠用persistent聲明。僅僅能在M文件函數中定義和使用;改變了僅僅同意聲明它的函數才干使用的規則。當聲明它的函數退出時,永久變量繼續保存在內存中。
persistent a3、特殊變量和關鍵字
特殊變量是指Matlab提前定義的具有默認意義的變量,例如以下表:
| ans | 用作結果的缺省變量名 | beep | 使得計算機發出“嘟嘟”聲 |
| pi | 圓周率 | eps | 機器零閾值,浮點精度限(2.2204*10^-16),MATLAB中的最小數 |
| inf | 表示無窮大,如1/0 | NaN | 表示不定數。即結果不能確定,比如0/0 |
| j或i | 虛數 | nargin | 函數的輸入參數個數 |
| nargout | 函數的輸出參數個數 | Realmin | 可用的最小正實數 |
| realmax | 可用的最大正實數 | bitmax | 可用的最大正整數(以雙精度格式存儲) |
| varargin | 可變函數的輸入參數個數 | varargout | 可變函數的輸出參數個數 |
Matlab中有20個關鍵字。能夠使用iskeyword命令來查看。
>> reshape(iskeyword,5,4)ans = 'break' 'else' 'global' 'return''case' 'elseif' 'if' 'spmd' 'catch' 'end' 'otherwise' 'switch''classdef' 'for' 'parfor' 'try' 'continue' 'function' 'persistent' 'while'二、分支結構
Matlab中可用的分支結構有三種,各自是if-else-end結構、switch-case結構和try-catch結構。
1、if-else-end結構
(1)假設可選擇的運行命令組僅僅有一組,則調用以下的結構:
if expressioncommands end(2)假設可選擇的運行命令組有兩組。則調用以下的結構
if expressioncommands1 %如果條件為真則運行commands1 elsecommands2 %如果條件為假則運行commands2 end(3)假設可選擇的運行命令組有n(n>2)組。則調用以下的結構
if expression1commands1 %假設條件expression1為真則運行commands1 elseif expression2commands2 %假設條件expression2為真則運行commands2 ... elsecommandsn %假設前面的全部條件都不滿足就運行最后一條 end2、switch-case結構
switch value %value為要進行推斷的標量或字符串case test1commands1 %假設value的值等于test1。運行commands1case test2 %假設value的值等于test2,運行commands2commands2... otherwisecommandsn %假設全部的條件都不滿足就運行這條命令 end注意:case后的檢測值不僅能夠是一個標量值或一個字符串,還能夠是一個元胞數組。假設檢測是一個元胞數組,則Matlab將value與元胞數組中的每個元素都進行比較。假設有一個元素相等就覺得匹配成功,從而運行該次檢測相相應的命令組。
3、try-catch結構
trycommand1 %命令組command1首先被運行。若正確,則catch下的命令組將不會被運行 catchcommand2 %假設command1命令組運行出錯了,那么該命令組將會被運行 end假設在catch下的command2的命令組的運行過程也出錯了。那么Matlab將停止運行。
try-catch結構在程序調試場合很實用。
三、循環結構
1、for循環
比如求解1+2+3+….+99+100的和
>> sum=0; >> for i=1:100 sum=sum+i; end >> sumsum =5050實際上for后邊的i是一個數組,for循環每運行一次,i就取矩陣中的下一個值,比如:
>> for i=[1,3,5] sum=sum+i; end >> sumsum =92、while循環
我們還是求上邊的那個1——100的和,使用while循環。
>> sum=0; >> i=1; >> while i<=100 sum=sum+i; i=i+1; end >> sumsum =5050while循環和for循環的差別就是,while循環事先不知道要循環多少次,而for循環是依照之前設置好的次數來循環的。
四、其它經常使用控制命令
1、input和keyboard命令
input命令將Matlab的控制權臨時交給用戶,等待用戶通過鍵盤輸入數值、字符串或表達式等并經回車鍵將輸入內容傳遞到工作空間后,收回控制權。
經常使用格式例如以下:
value = input('message') value = input('message','s')命令中的message是將顯示在屏幕上的字符串,對于第一種調用格式,能夠輸入字符串、數值等各種各樣的數據。
可是另外一種格式的,不管輸入什么內容都當做字符串處理。
keyboard命令將控制權交給鍵盤,用戶能夠由鍵盤輸入各種合法的matlab命令。僅僅有當用戶輸入完畢。并鍵入return命令后,才收回控制權。
input命令和keyboard命令的不同之處在于:keyboard命令同意輸入隨意多個Matlab命令,而input命令僅僅同意用戶輸入賦值給變量的數組、字符串或元胞數組等。
2、pause命令
pause命令的功能為控制運行文件的暫停與恢復。其調用格式例如以下:
pause %暫停運行文件。等待用戶按隨意鍵繼續 pause(n) %在繼續運行文件之前,暫停n秒3、lasterr和lastwarn命令
lasterr命令能夠顯示matlab系統推斷的最新出錯原因。
lastwarn命令能夠顯示matlab系統給出的最新警告程序并繼續運行。
轉載于:https://www.cnblogs.com/mthoutai/p/7306415.html
總結
以上是生活随笔為你收集整理的Matlab变量、分支语句和循环语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: solr入门之參考淘宝搜索提示功能优化拼
- 下一篇: 用ab进行POST,GET压力测试,且定