返回介绍

if

发布于 2019-08-26 14:10:42 字数 1091 浏览 1028 评论 0 收藏 0

if语句计算逻辑表达式并当表达式为真时执行一组语句。可选的elseifelse关键字规定后面的各组语句是否执行。与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
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文