调试程序所出现的bug可分为3类,语法出错导致的bug,逻辑出错导致的bug,运行当中出现的bug,
逻辑值有两种 即ture(1) 或 false(0) ,在matlab中使用的是0和1表示假或真的 ,matlab中会产生逻辑值的有两种 ,一种是逻辑运算,一种是关系运算
可在工作区当中观察运行的结果是逻辑值还是数值,如果是逻辑值的话工作区中运行结果的图标是一个勾,如果是数值的话工作区中的图标是一个十字
也可以使用whos + 运算结果函数名查看其class如果是logical就表示逻辑值,如果是double则表示数值,matlab中不等于的符号是 ~=;
当数组和一个数值进行关系运算,是数值与数组中的每一个元素一 一进行关系运算,返回的是一个数组 如:
>> A = [1,2,3]
A =
1 2 3
>> C = 2
C =
2
运算结果
>> 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 强制停止运行