Day 1 M文件
一、语法知识
1、函数M文件
- Matlab有1000余条内装函数,如三角函数、幂函数、指数函数、多项式函数、插值函数、求多项式根函数、矩阵运算函数、微分函数、积分函数、微分方程求解函数和图形绘制函数等。这些函数都用后缀为M的函数文件编写,故又称函数M文件。
- 当调用Matlab函数时,在命令窗口输入函数名,则该函数的程序即被调用并执行。
2、函数M文件的编写及组成
- M文件的编写在M文件编辑器中进行。点击文件菜单file/new/m-file,即可打开M文件编辑器。
- 函数M文件是由下列 5 部分组成:
1)函数定义行:它必须由关键字function
开头,后面是函数的输出变量,如果有多个输出变量则需要用方括号括起来,输出变量之间用“,”隔开。等式右边则为函数名,接着是函数的输入变量,并且用圆括号括起来,若有多个输入变量,则也用“,”分开。函数名与变量是一样的,都必须是由字母开头,由字母、数字和下划线组成(不能有其他的符号),总长度不能超过31字符。
例如function[outBL] = HS(inBL)
2)帮助文本的标题行:这一行也叫做H1行(即help的第一行),在这一行里,只需要简明扼要地说明函数的功能即可。
3)帮助文本的内容:需要详细说明变量的类型,使用时的语法规则,使用举例和相关的函数名作为查找时的参考。
4)函数体:即由输入变量计算输出变量的程序体,还包括了程序运行时的出错处理。
5)附注:说明函数的编者、版权和日期。 - 举个例子:要查看某函数的程序是如何编著的,首先先在命令窗口输入
">>type 函数名"
。但Matlab有的函数M文件的程序时被隐藏的,所以当你用type
命令显示该函数M文件时,命令窗口会显示它时内装函数,无法查看内容。
3 、内联函数
- 对于一次性使用的函数,可以使用内联函数inline来实现。内联函数的编制比较宽松,但它不进行函数储存,它的书写格式为
F = inline(expr, 'x1', 'x2', ... , 'xn')
。
其中inline
为内联函数;expr
时以字符串形式的数学表达式;x1 , x2 , ... , xn
为数学表达式expr
中的变量。
4、文本M文件
- 对于处理一个一次性要执行大量Matlab命令和语句,并且有重复使用的程序的任务时,可以将这些语句的集合存放在扩展名为M的文件中。M文件的编辑与函数M文件类似,在M文件编辑器中进行,它执行计算所用的数据来自于键盘输入和工作空间中已经存在的变量。它的输出数据仍保存在工作空间中,便于下次计算时的调用。
- 函数M文件与文本M文件的区别:
5、M文件的编辑和储存
- 文件的编辑时按照上面说过的5个部分要求进行编辑,编辑过程中要进行调试和排除错误。确认无误后进行存盘,点击存盘命令后会自动生成文件名(即原先设定的函数名)。
- 文本M文件的文件名是自行命名的,程序的组成也比较自由。
二、实例演练
函数M文件调用的例子:
程序代码如下
解读:其中syms
用于建立符号变量,sym2poly
是将多项式转换成系数向量的转换函数,用于提取3次代数方程的系数向量y1,最后通过求解多项式根的roots
函数来求出最终的解。
函数M文件的编制例子:
程序代码如下
以上为设定的函数triarea
,必须要保存为M文件才能被调用。
后面给出数据来解题。
解答如下
解读:一开始需要用function
定义程序,后面用if
写出必要的条件,最后函数编程完毕之后一定要记得保存好M文件,最后在命令行窗口就可以调用该函数了。
内联函数的例子
一个自变量的内联函数
程序代码如下:
多个自变量的内联函数
程序代码如下:
解读:先编制内联函数,程序相应后计算所需要的值。
文本M文件的例子
程序代码如下:
最后在命令行窗口输入函数名flower_plots
即可画出图形
解读:主要是要注意点乘,和循环等重点,还有switch
的使用。
总结思考
本次学习Matlab的M文件部分,深刻了解了这一部分的内容,我感觉收益颇多,虽然我才刚刚开始学习matlab没多久,基础很不牢固,但是希望通过本次20天的学习能够掌握这门语言的大部分,为明年的建模做好准备。