zoukankan      html  css  js  c++  java
  • Matlab从入门到精通 Chapter 4 编程基础

    ---恢复内容开始---

    4-1 M文件编辑器

    • 在命令窗口输入edit命令,可以打开M文件编辑器,创建新的M文件
    • 在命令行中输入edit filename,那么可以打开在当前目录环境下的M文件

    4-2 M文件编辑器的设置

    •  在M文件编辑器中选择File-Preference菜单项

    4-3 M脚本文件的编写

    •  创建脚本文件,由一系列按照用户要求执行的命令构成,称为M文件,.m后缀
    • 文件的变量驻留在工作空间内,从工作空间可以查询到脚本文件执行中的变量信息,还可以用whos查询,不使用时需要用clear命令进行清除
    • 脚本文件的执行:run命令或者F5
    • 一些控制函数:
    1.  disp:只显示结果,不显示变量名
    2. echo:脚本文件执行过程中,执行脚本文件内容是否显示在命令窗口
    3. input:提示用户输入数据

    4-4 流程控制

    • for循环结构

          一般格式: 

           for x=array      %array为条件数组,任何合法的数组生成语句都可以

                 commands   %循环代码

           end

      注:等效数组的执行效率比for循环快几个数量级。等效数组的解决办法也叫向量化的解决方案;数组的为标量化解决方案。

    • while循环结构

          一般格式:

            while expression  %条件表达式,标量或者数组表达式;为数组时,只有数组中的所有元素均为true时,循环体内的commands才会一直执行下去。

                   commands

            end

        注:当expression为数组时,可以使用any函数作为while循环的条件判断式

    • if判断结构

          if expression

                   commands

          end

    注意:

              当expression 为(expression 1|expression 2)时,那么当计算的expression1为false时,expression2才执行

              当用户需要在判断条件为true和false时,分别执行不同的命令,那么可以选择使用if-else 判断结构:

          if expression

                      commands when expression is true

          else 

                      commands when expression is false

          end

               当用户需要执行多个操作语句时,可以使用elseif语句结构。

    • switch分支选择结构

          结构格式:

          switch expression

                 case test_expression1

                         commands1

                 case test_expression2

                        commands2

                otherwise

                        commands3

           end

    • try-catch结构

                  try 

                           commands1  %都被执行

                 catch

                           commands2    %有错误,执行commands2

                end    %无错误,跳到此处

        用户也可以在catch模块中,使用rethrow函数来将实际的字符串显示出来,并结束程序。

    4-4 控制命令

             常见的控制语句包括input、continue、break、return、echo等

             continue命令:结束本次循环,直接放到循环控制体内

             break命令:跳出break所在的循环体,如果有多个循环语句嵌套时,break只能跳出所在的那个循环,而不跳出整个循环结构。

             return命令:将函数的控制权转回到主调函数或者指定的窗口

            keyboard命令:将该命令放到M文件中,当程序执行到该命令时,将停止程序的执行,而将命令控制权交给keyboard;当用户完成命令的执行后,按return返回

            error和warning命令:error 终止,warning继续执行。

    4-5 程序的向量化概念

       逻辑数组和向量化

    • 逻辑数据可以通过关系和逻辑表达式来创建
    • 也可以通过logical命令来创建逻辑数组
    • 对于逻辑数组的联系也可以通过whos命令来查看

    4-6 M函数文件

            在Matlab中允许用户创建3种类型的函数:M函数、匿名函数和内联函数,本节主要介绍M函数文件。

    • 函数文件的创建
    1.  M函数文件的第一行必须是function引导的声明语句,如:function y=sinex(x)
    2. 在函数声明行和第一行命令之间可以放入若干注释行
    3. 在M函数文件中也可以调用M脚本文件
    4. 在M函数文件中也可以创建一个或者多个子函数,即局部函数;子函数只能被M函数问你内的主函数调用

    • 输入输出参数
    1. n=nargin 获取实际输入函数体的输入参数个数
    2. n=nargin(‘fun’) 获取指定函数fun的输入参数个数
    3. n=nargout  获取实际输入函数体的输出参数个数
    4. n=nargout(‘fun’) 获取指定函数fun的输出参数个数
    5. 在函数声明过程中,如果将varargin和varargout作为输入参数列表和输出参数列表的最后一个参数,那么在函数调用时,函数就可以接受任意个数的输入参数,也可以输出任意个数的输出参数。P138
    • 函数句柄和匿名函数

          用户需要将一个函数的标示作为参数传递给另一个函数,Matlab提供了内联函数(inline function)和匿名函数(anonymous function)

    1. 匿名函数:

    1. 内联函数:可以通过字符串表达式来创建函数

    4-7 程序的调试和剖析

               程序调试常见的错误:语法错误和运行错误

              直接调试方法:

    1. 将被调试语句的分号去掉,使计算的中间结果在命令窗口显示出来
    2. 在疑似问题出添加多余语句,来显示要查看的变量
    3. 灵活使用keyboard命令参与程序调试
    4. 将函数文件变成脚本文件来查询,即将函数文件的第一行用%加以注释,这样函数文件运行中的变量数值就可以在工作空间进行显示

    ---恢复内容结束---

  • 相关阅读:
    HDU1542 Atlantis(矩形面积并)
    HDU4784 Dinner Coming Soon(dp)
    1023: [SHOI2008]cactus仙人掌图(DP+单调队列优化)
    BZOJ 1004: [HNOI2008]Cards(群论)
    BZOJ USACO 银组 水题集锦
    BZOJ 3401: [Usaco2009 Mar]Look Up 仰望(离线+平衡树)
    BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
    BZOJ 3208: 花神的秒题计划Ⅰ
    BZOJ 2456: mode(乱搞)
    BZOJ 2424: [HAOI2010]订货(费用流)
  • 原文地址:https://www.cnblogs.com/Ann21/p/9298506.html
Copyright © 2011-2022 走看看