• Matlab 编程


    M文件

    1. 脚本文件

    • Script is a file containing a series of commands 
    • Scripts need to be saved to a <file>.m file before they can be run
    • Matlab工具库中有大量的预定义M文件,可以用what命令,列出有用户定义和在Matlab中存放的M文件
    • 脚本可以运行工作空间中存在的数据,或创建新数据来运行

    2. 函数文件

    • 概念
      • M文件的第一个可执行语句以Function开始,则该文件为函数文件,每一个函数文件都定义一个函数
      • 脚本文件和函数文件区别
        • 脚本文件的变量为工作空间的变量,在文件执行完成后保留在工作空间
        • 函数文件内定义的变量为局部变量,只在函数文件内部起作用,函数文件执行完后,内部变量将被清除
    • 函数文件结构
      • 函数定义行
        • 关键词 Function,定义函数名(必须以字母开头)、输入参数和输出参数,也可以没有输出参数
        • 函数名要和文件名相同,当两者不一致时,Matlab会忽视函数名,以文件名为准
        • 格式:function [x, y, z] = sphere(theta, phi, rho)
      • H1行
        • 帮助文本的第一行,是函数定义行下的第一个注释行,供lookfor查询时使用
      • 帮助文本
        • 在函数定义行后面,供help命令查询使用
      • 函数体
        • 包含用于完成函数功能的语句,这些语句可以是调用函数、流程控制、交互式输入输出、计算、赋值、注释和空行
      • 注释
    • 匿名函数
      • 匿名函数没有函数名,也不是函数M文件,只包含一个表达式和输入输出参数
      • 格式:f = @(input1, input2, _) expression
        • f 为创建的函数句柄,间接访问函数
        • Fxy = @(x, y) x.^y + 3*x*y
        • F(2,5); ans = 62
    •  子函数(SubFunction)
      • 函数M文件中,第一个函数未主函数,其他函数为子函数。主函数位置不能变,子函数排列顺序可以任意改变
      • 文件名应与主函数名相同,外部程序只能调用主函数
      • 子函数只能被处于同一M文件中的主函数或其他子函数调用
      • 函数调用时,子函数的优先级仅次于Matlab内置函数
      • 同一M文件的主函数、子函数工作区彼此独立,各个函数间的信息传递可以通过输入输出变量、全局变量实现。
      • help、lookfor等帮助指令不能显示M文件中子函数的任何信息
    • 重载函数
      • 用于处理功能类似但功能属性不同的函数,比如变量类型不同
    • eval 函数:与文本变量一起使用,用于求表达式的值或执行包含文本字符串的语句

    3. Tips

    • 注释
      • 注释符:%
      • 快捷键:Ctrl + R,注释;Ctrl + T,取消注释
    • 节(section)
      • 符号:%%
    • 智能缩进
      • 右键 -> 智能缩进
      • 快捷键:Ctrl + I
    • M文件开头命令
      • clear all - remove all previous variable
      • close all
      • clc
    • 不想输出时,语句后加分号 : 
    • 一行写不下时,用省略号 ...
    • 终止程序:Control + C

    控制流程(Control Flow)

    1. 顺序结构

    • Matlab中最基本的结构,按先后顺序执行
    • 输入、计算、输出

    2. if - else - end分支结构

    if condition1
    
      statement1
    
    elseif condition2
    
      statement2
    
    else
    
      statement3
    
    end

    3. switch - case结构

    switch expression
    
      case value1
    
        statement1
    
      case value2
    
        statement2
    
      .
    
      .
    
      otherwise
    
        statement
    
    end

    4. try - catch

    try
    
      command1  %command1总是首先被执行。若正确,执行完成后结束此结构
    
    catch
    
      command2 %command1执行发生错误时,执行command2
    
    end

    5. for循环

    for variable = start : increment : end
    
      commands
    
    end

    6. while循环

    • while 和 for 循环的区别在于,while 循环的循环体被执行的次数是不确定的,而 for 循环是确定的
    • 若 while 指令后的表达式为空数组,则默认值为假,直接结束循环
    while expression
    
      statement
    
    end

    7. 其他指令

    • return
      • 当被调用函数执行完成后,Matlab自动将控制权转回主函数或Commands窗口
    • input
      • 用户通过键盘输入
      • value = input('message')
    • pause
      • 用于控制执行文件的暂停与恢复
      • pause,暂停执行文件,等待用户按任意键继续
      • pause(n),在继续执行文件前,暂停n秒
    • continue
      • 在嵌套循环中,continue把控制传给下一个 for 或 while 循环所嵌套的迭代
    • break
      • 对for循环或while循环结构的终止
    • error
      • error('message'),显示出错信息message,终止程序
    • warning
      • warning('message'),显示警告信息message,继续运行程序

    请使用手机"扫一扫"x

  • 相关阅读:
    数据仓库--事实表
    Oracle SQL函数pivot、unpivot转置函数实现行转列、列转行
    在Oracle中使用rank()over()排名的问题
    python 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。(用列表推导式)
    pyhton 打印菱形
    三元运算
    Python代码书写规范
    DDT驱动
    使用 JsonPath 完成接口自动化测试中参数关联和数据验证(Python语言)
    数据类型(字典)
  • 原文地址:https://www.cnblogs.com/dinghongkai/p/10511632.html
Copyright © 2020-2023  润新知