• Matlab程序


    一、流程控制语句

    1. 选择结构

    1.1 if语句

    if 条件1
    	语句
    elseif 条件2
    	语句
    else
    	语句
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    可以看到matlab的语句和其他大部分语言不太一样
    不同点

    • if后的条件不加小括号
    • if后的语句不用加大括号
    • 最后要加end表示分支的结束

    相同点

    • 只能由一个else,且要放在最后
    • 不同的分支只会执行其中一个,从上到下依次检测条件
    • 执行完分支后会开始执行end后的语句

    1.2 switch语句

    switch(exp)
    case exp1,
    	语句
    case exp2,
    	语句
    case {exp3,exp4,exp5},
    	语句
    otherwise:
    	语句
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 看得出依然没有大括号,依然要以end结尾,不同的是switch后加了小括号
    • exp可以接受整数或字符
    • 如果多个case需要执行相同的代码,则可以写在一起,用花括号括住
    • case后跟逗号不是冒号
    • 当case后的代码块被执行完后会直接跳出,不会再继续执行下去
    • 当switch后的结果与多个case匹配,则只有第一个代码块会执行

    1.3 try/catch语句

    try
    	代码块
    catch
    	代码块
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 类似java中的try语句,用于捕获错误
    • 在执行try语句时,如果发生错误,try语句会被中止,开始执行catch语句
    • 如果try语句没有出错,则认为catch语句不存在

    2. 循环结构

    1. while语句

    常用于代码的循环次数不确定的情况
    当express为真时循环继续,否则循环停止,开始执行end之后的语句

    while express
    	代码块
    end
    
    • 1
    • 2
    • 3

    2. for语句

    常用于代码的循环次数确定的情况
    这个for语句跟其他编程语言的不能说是不太一样,只能说是毫不相关,从没见过这么怪 的,说是普通的for循环总觉得奇怪,说是增强for语法又不同
    index是循环变量,exp是控制表达式,index读取exp的每一列,exp有多少列,代码块就执行多少次

    for index = exp
    	代码块
    end
    
    • 1
    • 2
    • 3

    3. continue和break

    用于辅助控制循环语句的结束,与c语言作用相同

    • continue是结束当前轮循环并开始下一轮
    • break是结束整个循环,开始执行end后的语句

    二、M文件

    1. 基本介绍

    当需要完成的操作比较复杂时,不适合一直使用matlab 的命令行窗口,这时候就需要引入脚本文件。
    matlab是以.m文件来作为脚本文件,在这里可以调用所有matlab函数,可以包含多条语句,可以使用控制语句,除了语法之外与其他语言的源代码相同。
    m文件还可以作为函数文件使用。

    2. 编辑器

    2.1 内置编辑器

    matlab内置了m文件的编辑器,可以使用以下的方式来创建脚本文件

    • 在文件区右键新建脚本打开
    • 在命令行输入edit打开编辑器
    • 使用快捷键ctrl + N

    2.2 vscode开发环境搭建

    有一说一内置编辑器真的难用,还是要用vscode自己搭建一个轻量级的开发环境。
    @感谢csdn大佬的回答

    2.2.1 插件安装

    安装这几个插件
    在这里插入图片描述

    2.2.2 配置

    在vscode的配置文件中添加相关的配置
    将matlab添加到系统的环境变量中,否则code runner插件无法识别m文件
    在这里插入图片描述

    setting.json中添加

        // mlint路径
        "matlab.mlintpath" : "E:\\MATLAB\\bin\\win64\\mlint.exe",
        "matlab.linterConfig":"E:\\MATLAB\\bin\\win64\\mlint.exe",
        // m文件与matlab关联
        "files.associations": {"*.m":"matlab"},
        // matlab代码格式化
        "matlab-formatter.indentwidth": 2,
        "matlab-formatter.separateBlocks": true,
        // matlab安装目录
        "matlab.matlabpath": "E:\\MATLAB\\bin\\matlab.exe",
        // matlab编码格式
        "matlab.linterEncoding": "GB2312",
        // matlab运行
        "code-runner.runInTerminal": true,
        "code-runner.executorMap": {
            "matlab": "cd $dir && matlab -nosplash -nodesktop -r $fileNameWithoutExt"
        },
        // 在其它建议上方显示代码片段建议
        "editor.snippetSuggestions": "top", 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    3. 语法

    3.1 注释

    单行注释,以%开头,快捷键ctrl + R
    多行注释,%{ 注释内容 %},快捷键ctrl + T

    3.2 变量

    • 不需要事先声明就可以使用,必须以字母开头,区分大小写,可以包含字母数字和下划线。
    • 如果要在函数文件中使用某个变量的值,需要使用global来将其声明为全局变量。

    3.3 函数文件

    3.3.1 函数文件的声明

    函数文件的第一行必须是函数原型,下面跟函数内容。
    函数名必须跟文件名相同,声明完成后就可以调用,最好不要和matlab内置函数命名冲突。

    function <返回值> = <函数文件名>(<参数表>)
    
    • 1

    函数的返回值可以有一个,也可以有多个。

    3.3.2 匿名函数

    • 在脚本文件中可以使用@来定义函数,该函数只能在这个脚本文件中使用
    • 在函数文件中也可以定义多个函数,从第二个函数开始只能在该函数文件中使用。
  • 相关阅读:
    安全防御(一)--- 防火墙基础
    .NET Core 实现后台任务(定时任务)BackgroundService(二)
    elasticsearch多字段聚合实现方式
    Q-M(Quine-McCluskey)两级逻辑化简算法原理解析
    Elasticsearch:如何在 Elastic Agents 中配置 Beats 来采集定制日志
    《数据结构、算法与应用C++语言描述》-栈的应用-开关盒布线问题
    【Flask】三、Flask 常见项目架构
    【CSS】css转换、css过渡、css动画_09
    systemctl教程(systemctl命令)(systemd)(service命令)
    1-Java SE基础
  • 原文地址:https://blog.csdn.net/m0_66711291/article/details/125606517