調試程序所出現的bug可分爲3類,語法出錯致使的bug,邏輯出錯致使的bug,運行當中出現的bug,express
邏輯值有兩種 即ture(1) 或 false(0) ,在matlab中使用的是0和1表示假或真的 ,matlab中會產生邏輯值的有兩種 ,一種是邏輯運算,一種是關係運算數組
可在工做區當中觀察運行的結果是邏輯值仍是數值,若是是邏輯值的話工做區中運行結果的圖標是一個勾,若是是數值的話工做區中的圖標是一個十字函數
也可使用whos + 運算結果函數名查看其class若是是logical就表示邏輯值,若是是double則表示數值,matlab中不等於的符號是 ~=;調試
當數組和一個數值進行關係運算,是數值與數組中的每個元素一 一進行關係運算,返回的是一個數組 如:code
>> A = [1,2,3]
A =
1 2 3
>> C = 2
C =
2io
運算結果class
>> A==C
ans =
0 1 0原理
矩陣與數值進行關係運算也是如此,若是是數組與數組進行關係運算時則是對應的位置上的元素進行比較,數組的維數要一致,矩陣與矩陣進行關係運算時也與數組與數組進行關係運算同樣循環
邏輯運算語法
在matlab中沒有固定的值表示真與假,因此大於0的值都表示爲真,將0值定義爲假
邏輯運算符 &(與),|(或),~(非),xor(異或 即 相同時就是假,不一樣時才爲真),運算優先級:算術運算,關係運算,邏輯運算(其中最高的爲非,其次是與,而後到或)
短路運算原理:當有多個表達式時,若是左邊數值能夠肯定結果的話,就沒必要在對右邊的數進行運算,這樣能夠提升運算速度
&& 找假,先看第一個表達式的值,若是第一個表達式不是布爾類型,強制轉換成布爾類型,轉換若後爲false,則返回第一個值(不是被強制轉換後的值),不然返回第二個值
|| 找真,先看第一個表達式的值,若是第一個表達式不是布爾類型,強制轉換成布爾類型,轉換若後爲true,則返回第一個值(不是被強制轉換後的值),不然返回第二個值
短路與運算(符號爲 &&),短路或運算 (符號爲 ||)短路運算的操做數必須是標量,不能是數組,矩陣之類的
ischar()函數:判斷是否是字符,如:ischar(5),輸出 ans = 0, ischar('y'),輸出ans =1;
isnumeric()函數:判斷是否是一個數,如: isnumeric(1) ,輸出ans = 1,isnumeric('u'),輸出ans = 0;
isempty()函數:判斷是否是空的,如:a = [] , isempty(a),輸出ans = 1;
isinf()函數:判斷是否是無窮大,如:isinf(1/0),輸出ans = 1;
if語句
if 表達式
語句一
elseif 表達式
語句二
else 表達式
語句三
end %不可省略
disp()打印函數
while 循環 結構
while expression %表達式能夠用圓括號也能夠不用
code block
end %不可少
matlab中不能寫成如n++,要寫成n = n+1這種形式
若是程序一直在死循環 可以使用ctrl + c 強制中止運行