文章目录
一、流程控制语句
1. 选择结构
1.1 if语句
if 条件1
语句
elseif 条件2
语句
else
语句
end
可以看到matlab的语句和其他大部分语言不太一样
不同点
- if后的条件不加小括号
- if后的语句不用加大括号
- 最后要加end表示分支的结束
相同点
- 只能由一个else,且要放在最后
- 不同的分支只会执行其中一个,从上到下依次检测条件
- 执行完分支后会开始执行end后的语句
1.2 switch语句
switch(exp)
case exp1,
语句
case exp2,
语句
case {exp3,exp4,exp5},
语句
otherwise:
语句
end
- 看得出依然没有大括号,依然要以end结尾,不同的是switch后加了小括号
- exp可以接受整数或字符
- 如果多个case需要执行相同的代码,则可以写在一起,用花括号括住
- case后跟逗号不是冒号
- 当case后的代码块被执行完后会直接跳出,不会再继续执行下去
- 当switch后的结果与多个case匹配,则只有第一个代码块会执行
1.3 try/catch语句
try
代码块
catch
代码块
end
- 类似java中的try语句,用于捕获错误
- 在执行try语句时,如果发生错误,try语句会被中止,开始执行catch语句
- 如果try语句没有出错,则认为catch语句不存在
2. 循环结构
1. while语句
常用于代码的循环次数不确定的情况
当express为真时循环继续,否则循环停止,开始执行end之后的语句
while express
代码块
end
2. for语句
常用于代码的循环次数确定的情况
这个for语句跟其他编程语言的不能说是不太一样,只能说是毫不相关,从没见过这么怪 的,说是普通的for循环总觉得奇怪,说是增强for语法又不同
index是循环变量,exp是控制表达式,index读取exp的每一列,exp有多少列,代码块就执行多少次
for index = exp
代码块
end
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",
3. 语法
3.1 注释
单行注释,以%开头,快捷键ctrl + R
多行注释,%{ 注释内容 %},快捷键ctrl + T
3.2 变量
- 不需要事先声明就可以使用,必须以字母开头,区分大小写,可以包含字母数字和下划线。
- 如果要在函数文件中使用某个变量的值,需要使用global来将其声明为全局变量。
3.3 函数文件
3.3.1 函数文件的声明
函数文件的第一行必须是函数原型,下面跟函数内容。
函数名必须跟文件名相同,声明完成后就可以调用,最好不要和matlab内置函数命名冲突。
function <返回值> = <函数文件名>(<参数表>)
函数的返回值可以有一个,也可以有多个。
3.3.2 匿名函数
- 在脚本文件中可以使用@来定义函数,该函数只能在这个脚本文件中使用
- 在函数文件中也可以定义多个函数,从第二个函数开始只能在该函数文件中使用。