if
优质
小牛编辑
141浏览
2023-12-01
if
语句计算逻辑表达式并当表达式为真时执行一组语句。可选的elseif
和else
关键字规定后面的各组语句是否执行。与if搭配的关键字end
结束最后一组语句。所有语句都用这4个关键字描绘,且不必用括号。
MATLAB的生成n阶魔方的算法有三种不同情形:n是奇数,n为偶数但不能被4整除,n能被4整除。用下列语句描述。
if rem(n,2) ~= 0 M = odd_magic(n) elseif rem(n,4) ~= 0 M = single_even_magic(n) else M = double_even_magic(n) end
在此例中,三种情形是互斥的,否则,就执行第一个真条件。
重要的是,要明白有关的算子和if语句是如何对矩阵起作用的。当你想检查两个变量是否相等,你或许会用
if A == B, ...
这是合法的MATLAB代码,当A,B都是标量时执行如你所愿的任务。但当A,B是矩阵时,则A==B并不是测试它们是否相等,而是在哪些位置相等;这样,结果是另一个含有0和1的矩阵,表示元素与元素是否相等。事实上,若A和B不是同尺寸的矩阵,则A==B是错误语句。
检查两变量的等同性的正确方法是用isequal
函数,
if isequal(A,B), ...
这里有另一个强调这点的例子。若A,B是标量,下面程序一定不会出现意料之外的情形。但对于大多数矩阵对,包括有相互交换列的魔方,对所有元素,无论A > B
, A < B还是A == B
都非真,因此执行了else子句。
if A > B 'greater' elseif A < B 'less' elseif A == B 'equal' else error('Unexpected situation') end
有些函数对把矩阵比较简化为标量条件以用if很有用。包括
isequal isempty all any