少年,MATLAB了解一下?
什么是MATLAB
MATLAB 是美国MathWorks公司出品的一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。中文名矩阵实验室(Matrix Laboratory),功能足够强大,操作便捷,易学易用。是理工学习居家旅行的必备良品。
MATLAB是由C语言写成的,不同在于它使用的是解释语言。除了具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。随着版本的不断更新,其功能也在不断加强,也有使用者会加入自己开发的工具。
MATLAB为何实用
首先,我们来了解一下什么是Simulink。
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包。也是一款商业软件,当然,仿真软件有很多,而Simulink主要运用于工程领域时,其功能完善而强大。
比如,它可运用于无线通讯、电机和电源控制、控制系统、信号处理、机器人、物联网和图像处理等多种领域的项目研究。
可以说,MATLAB的仿真功能是让它脱颖而出的利器之一,也是让它脱离“语言”限制,成为一款更普及大众的工具。
(以上内容可忽略!!!)
稍等,听完这个是不是头都大了?让我们来换个说法:
其实就是这个工具极易上手。使用MATLAB的过程中可以发现它对语言的要求较之于C语言更为宽松。
MATLAB使用注意事项
1、退出MATLAB系统,常见方法有:
1)在MATLAB主窗口File菜单中选择Exit MATLAB命令。;
2)在MATLAB命令窗口输入Exit或Quit命令;
3) 单击MATLAB主窗口的关闭按钮。
2、查询函数功能:
1)help,在命令行窗口直接输入help命令,回车即可看到matlab软件中的基本命令语句的信息;
2)lookfor ,搜索出一系列与给定关键词相关的命令和函数。
3、命名规则:
1)变量:小写字母开头,采用大小写混用模式或下划线分割模式。用C++进行编程时,经常用到类和指针,用户在查找类的成员函数或者成员变量使,不可能把所有的类成员记得清清楚楚,一般是先输入类成员的首字母或开始几个字母,然后根据编辑器的下拉列表框,寻找需要的类成员。于是大家约定,所有的类成员均以小写子母开头,以方便类成员的查找。
(1)临时变量:临时变量的的变量名应该尽量短。习惯上,m,n, i, j, 表示int类型的临时变量;c,ch等表示字符类型的临时变量;a表示临时数组 ;
(2) 前缀m或者n通常用于申明数值对象,m代表matrix,n代表number;
(3) 前缀p表示指针;前缀str表示字符串;前缀st表示枚举、结构或者联合体;前缀b表示布尔型变量;
(4) 表示对象与对象集合的变量名,不要仅仅只相差一个后缀‘s’,应该在后面加一个Array;
(5) 尽量避免变量名一数字区别、以大小写区别或者加以s区别,避免容易混淆;
(6) 只表示单个实体数据的变量, 可以添加前缀i或后缀No;
(7) 循环变量应该以i、j或者k为前缀,应i和j作为循环变量;
(8) 布尔变量应该禁止使用否定式的变量名;
(9) 缩写形式即使全部为大写字母,在变量命名时也应该与小写字母混合使用。
2)常量:
(1)常量名、全局变量名、永久变量名应该全部采用大写字母,且下划线分割单词;
(2)可以采用对象的类型名作为前缀;
(3)结构体:
1)结构体名应该以大写字母开头。这样约定是为了与普通变量名加以区别;
2)结构体的字段名不需要包含结构体名的含义。
3)函数:
(1)MATLAB中定义的大部分系统函数都是采用纯小写字母作为函数名的,新版MATLAB部分函数会采用小驼峰命名法(第一个单词以小写字母开头;第二个单词的首字母大写)来命名,如前面讲到的matlabfFunction函数;
(2)函数名应该有意义;
(3)所有的函数命名应该采用英文的形式,禁止使用汉语拼音;
(4)单输出参数的函数,可以根据输出参数的含义来命名;
(5)前缀get和set作为访问GUI对象的保留前缀;后缀get和set作为位运算的保留后缀;
(6)前缀find具有查询功能的函数;前缀compute用于具有计算功能的函数;前缀initialize用于具有初始化对象功能的函数;前缀is用于布尔函数,iscell。
4)文件与结构:
(1)模块化设计。不同的功能分为不同的模块,单独进行设计;
(2)函数之间尽量采用输入输出参数进行通信。单输入参数较多时,考虑采用结构体;
(3)多处出现的额代码块,要考虑封装在一个子函数,写在同一个文件中;
(4)只被另外一个函数调用的函数,应该作为一个子函数,写在同一个文件中。
4、基本语句:
总体原则:避免使用含糊代码。代码不是越简洁越好。
1) 在文件开始的注释处,为重要的变量编写文档;
2) 在常量定义处,为 该常量编写注释;
3) 尽量少的使用全局变量。全局变量过多,不利于代码的维护和阅读;
4) 浮点数的逻辑运算要当心系统误差。
(2)常数:
尽量在表达式少用数字,可能会改变的数字用常数代替,便于程序的修改。浮点数应该在小数点前写上0.
(3)循环语句:
不要在循环语句中扩展数组的维数。循环中尽量少用break和continue,以增强代码的可读性。嵌套循环时,应该在每个end添加注释,注明该层循环完成什么功能。
避免使用复杂的条件表达式,而采用临时逻辑变量代替。
if-else中,频繁事件要放在你if的部分,偶尔事件放在else部分。
switch应该包含otherewise条件,以避免出现不可预料的错误。switch变量应该是字符串。
预分配数组空间,即先给数组分配好空间在使用。给数值型数组分配空间,优先使用zeros和ones;给单元数组分配空间,使用cell;给结构体分配空间,使用struct;扩充数组,使用repmat。
优先使用MATLAB内建函数,件好事的循环编写成MEX文件(C语言处理的快可以获得加速)。
4)合理使用空格:
在逗号、分号的后面加空格,而在函数名后不能加空格;关键字后面加空格。据此可以区分关键字和函数。块内部的1个逻辑组语句前后用空白行分开;块之间用多个空白行隔开。
(5)注释:
1)注释应该简介易懂;
2)函数头部的注释应该支持lookfor和help的对函数的查询,因此该行的注释中应该包含尽可能多的关键字;
3)函数头部的注释应该描述函数的功能,并能列出输入参数不同时该函数的语法和功能;
4)在函数头部的注释中,建议该函数的函数名全部大写;
5)在函数头部的注释中,最后要加上版权申明和程序版本;
6)函数头部的注释建议全部用英文。
一行代码写多条执行语句,不仅影响代码的美观,更会减慢代码的运行速度。
5、 应该遵循五条规则:
1)应该避免使用循环:优先考虑用向量化的运算来代替循环操作;(当然应该具体问题具体分析)2.在必须使用多重循环时,循环次数少的放在外层,循环次数多的放在内层;
2)预分配数组空间预分配数组空间,即先给数组分配好空间在使用。给数值型数组分配空间,优先使用zeros和ones;给单元数组分配空间,使用cell;给结构体分配空间,使用struct;扩充数组,使用repmat;
3)优先使用MATLAB内建函数,将循环编写成MEX文件(C语言处理的快可以获得加速);
4)尽量使用函数而不要使用脚本。脚本文件转换为函数文件的方法很简单,就是在文件的开头加一行无输入参数和输出参数的函数声明即可;
5)仔细检查代码中有波浪线提示的部分。
南航自动化科协
图文编辑:陈梦菂
领取专属 10元无门槛券
私享最新 技术干货