matlab - 程序流程控制、函数文件、特殊函数、调试与优化

学习视频

MATLAB代码的两种执行方式:命令行、程序执行。

1.程序流程控制

1.1.m文件

matlab中m文件分为两种: 脚本文件&函数文件
脚本文件:实际上是一个命令的集合,可认为是命令行的改良版,方便我们去编写命令
函数文件:声明了一个函数,是一个代码块,方便程序调用
区别:脚本没有输入没有返回,可以直接运行( 输入文件名/F5);函数类似于一个完整的程序,有输入有返回,在脚本中 调用才能运行。

脚本:

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第1张图片

函数:

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第2张图片

mlx文件

实时脚本,边写边运行,可以在输入时进行函数名自动补全。

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第3张图片

1.2.三种程序结构

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第4张图片

实例:

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第5张图片

1.3.选择结构

if-else

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第6张图片

switch

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第7张图片
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第8张图片

1.4.选择结构

for

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第9张图片
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第10张图片
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第11张图片

示例:

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第12张图片

while

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第13张图片

break和continue

这个没什么好说的,和C++/C那些一样。

1.5.循环嵌套

这个也没什么好说的,示例(阶乘和):

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第14张图片

2.函数文件

2.1函数文件的基本结构

由function和end引导,包含输入和输出
说明:函数文件名和函数名可以不同
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第15张图片

2.2函数调用

% [输出参数表] = 函数名字(输入参数)
% 注意:输入的参数顺序、个数预定义的一致

2.3递归

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第16张图片

2.4函数参数

matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第17张图片

2.5变量的作用域

% 全局变量global,局部变量local(函数内部)
% global作用域为整个函数空间,所有函数都可以对它进行存取和修改
% global可用来函数间的信息传递
% 不提倡使用global

3.特殊函数

3.1 子函数

主函数 Primary function
子函数 Subfuntion
子函数类似于其他编程语言中函数嵌套中的内层函数
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第18张图片

3.2内联函数

以字符串形式存在的函数表达式可以通过 inline 函数转化成内联函数
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第19张图片

3.3匿名函数(一行函数)

基本格式如下:
匿名函数名 = @(匿名函数输入参数) 匿名函数表达式
或者 匿名函数名 = @ 函数名
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第20张图片

4.调试与优化

4.1程序调试

% help debug
% 常用的有
dbstop 设置函数断点
dbclear 清除断点
dbcont 从断点处执行
dbquit 推出debug模式

% 步进:运行一条语句,但不进入函数 F10
% 步入:单步运行,遇到函数进入函数,任然但不运行 F11
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第21张图片
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第22张图片

4.2程序性能分析与优化

% 利用探查器 Profiler
profile on % 打开探查器
debugTest % 脚本名字
profile viewer % 查看探查器的检测内容
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第23张图片
matlab - 程序流程控制、函数文件、特殊函数、调试与优化_第24张图片

你可能感兴趣的:(Matlab,matlab)