QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1221|回复: 0
打印 上一主题 下一主题

【美赛必备】 MATLAB 入门教程四:控制流

[复制链接]
字体大小: 正常 放大

2983

主题

142

听众

9762

积分

升级  95.24%

  • TA的每日心情
    开心
    2017-1-9 14:34
  • 签到天数: 272 天

    [LV.8]以坛为家I

    自我介绍
    吃吃吃

    社区QQ达人

    群组乐考无忧

    群组2014国赛优秀论文解析

    群组2016美赛冲刺培训

    群组2016国赛优秀论文解析

    群组2016国赛备战群组

    跳转到指定楼层
    1#
    发表于 2015-12-8 09:26 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    像许多计算机语言一样,MATLAB也有控制流语句。控制流语句使Matlab脱离了仅限于简单计算的水平,使它成为完全高水平的矩阵运算语言。

    介绍MATLAB的几个最基本的选择和循环控制语句if , elseif , switch , whilefor语句,这些语句的格式和作用与一些编程语言比如C语言差不多,也很容易理解。编程的时候就不能在命令窗口中直接一行行的输入,需要建立一个m文件,在文件里写你需要的代码,然后运行。

    • While语句
    作用:允许一个语句或一组语句在逻辑条件控制下重复一个不确定的次数。
    你必须给while语句指定一个结束的条件,才能使循环结束,否则他将一直循环下去。
    while 循环的一般格式为:
    while 表达式
    语句组
    end
    现在用while语句来求1到100所有数字的和。代码如下:
    1. If <font face="宋体">条件语句</font>
    2. 表达式<font face="Times New Roman">1</font>
    3. else
    4. 表达式<font face="Times New Roman">2</font>
    5. end
    复制代码
    例子,现在我们要对下面这个向量进行处理:
    1 2 3 4 5 6 7 8 9
    让它变成:
    1 2 3 4 5 4 3 2 1
    1. If <font face="宋体">条件语句</font><font face="Times New Roman">1</font>
    2. 表达式<font face="Times New Roman">1</font>
    3. else if <font face="宋体">条件语句</font><font face="Times New Roman">2</font>
    4. 表达式<font face="Times New Roman">2</font>
    5. else
    6. 表达式<font face="Times New Roman">3</font>
    7. end
    复制代码
    下面我们来建立一个具有饱和特性的函数



    建立一个名字为f的m文件,代码如下
    • function F=f(t)
    • if t>=2
    •     F=40
    • else if t>1
    •         F=30
    •     else if t>0
    •             F=20
    •         else
    •             F=10
    •         end
    •     end
    • end

    复制代码
    然后可以指定一个数t,在命令窗口中对f(t)进行验证。小小的提示一下,这里用到MATLAB里调用函数的功能。简单的讲一下吧。

    1.首先把所有的函数都写在同一M文件里。

    2.在这一M文件里的各个函数可以相互调用。

    以上面的函数为例,新建一M文件,文件名:f.m
    在M文件里写了函数F=f(t)
    函数中,其中function关键字固定的不用更改
    F=f(t)是函数名,你可以另取名字,不过为了和题目一致故取名为F=f(t)
    (if ,else if)等这些是参数,要符合基本格式就行。

    定义函数
    function xxx(函数名)【F=f(t)】
    xxxx %在这写函数的代码

    调用函数
    要调用上面定义的函数怎么办呢?
    只需写xxx(函数名),以我们的例子我里呢,假如我想知道t=2时F值的话,要写F=f(2)。
    这样就可以得到F=40了。

    最后,终于到最后了

    • 来看一下switch-case语句
    当case后的选择判断值与swich条件匹配时就执行此case的语句,如果所有的case不于swich条件匹配就执行oterwise后的语句,下面的例子能说明这个问题:
    • A=1
    • switch  A
    •     case  -1
    •         disp('负数')
    •     case  0
    •         disp('零')
    •     case  1
    •         disp('正数')
    •     otherwise
    •         disp('其他值')
    • end

    复制代码
    最后需要的注意的是,对每一个for  switch  if和while语句,都必须有一个想相应的end,不然会出现错误。有的时候一些循环和选择语句需要嵌套执行,这样分清哪一个是哪一个的end将变的很重要,希望大家养成良好的编程习惯,这样才不至于出现混乱。

    不过最新版本的matlab对于end部分做的相当的到位,对于各位避免错误是相当的给力的,不过养成良好的编程习惯是一个必备的学习态度。



    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-7-28 15:55 , Processed in 0.422377 second(s), 51 queries .

    回顶部