Matlab学习笔记Matlab程序化编程.docx
《Matlab学习笔记Matlab程序化编程.docx》由会员分享,可在线阅读,更多相关《Matlab学习笔记Matlab程序化编程.docx(14页珍藏版)》请在冰豆网上搜索。
![Matlab学习笔记Matlab程序化编程.docx](https://file1.bdocx.com/fileroot1/2023-3/30/ed3fef6e-720a-4c91-9f73-6a3f9758385f/ed3fef6e-720a-4c91-9f73-6a3f9758385f1.gif)
Matlab学习笔记Matlab程序化编程
1.M文件有两种形式:
脚本形式和函数形式
脚本形式是命令行的简单叠加,matlab系统会自动按照顺序结构执行文件中的命令,所谓函数形式主要用于解决参数传递和函数调用的问题。
2.脚本形式的M文件在运行过程中可以调用Matlab工作系统区域内的所有数据,说产生的变量全都是全局变量。
这些变量一旦生成,就一直保存到内存空间中,直到用户执行clear函数或者是quit函数删除系统中的内存变量为止。
在函数文件中,所有的变量,除特殊声明外,都是全局变量,这些变量不会影响到整个系统的内存空间。
3.函数形式的M文件的文件名和出现在文件第一行的函数名必须相同,因为在实际中,matlab忽略了第一行,而是按照文件名来执行函数的。
M文件在windows下是不区分大小写的。
函数名必须以一个字母开头,函数名可以是任意的字母、数字和下划线的组合,这个命名的规则和变量的命名规则一样。
4.函数形式的M文件第一行被称为函数声明行,而且函数形式的M文件必须包括function这个关键字,其后就是这个函数最常用的方式调用的语法。
函数形式的文件可以调用脚本文件。
一个函数形式的M文件中可以出现多个函数,这些函数被称为子函数或局部函数
5.File-→New→Function
调用:
6.File-→New→Script
7.函数文件在函数定义下面的一行就是解释文件,可以被help读出:
8.局部变量和全局变量的测试:
我们先定义一个函数文件,有x1,x2,x3三个局部变量。
然后我们定义三个全局变量:
然后我们开始调用函数
从上我们就可以知道,局部变量不会对全局变量产生影响。
我们再用whos来查看内存中变量的存储情况
9.M文件中的控制语句
9.1顺序语句
9.2循环语句
Fori=(表达式)
(执行语句)
End
For要和end匹配,同时,需要适当的使用分号,否则把什么都输出来了
While语句
While表达式
执行语句
End
9.3选择语句
If表达式
执行语句
End
If表达式
执行语句
Else
执行语句2
End
If表达式
执行语句
Elseif表达式
执行语句2
Else
执行语句3
End
9.4分支语句
Switch开关语句
Case条件语句
执行语句1
Case条件语句
执行语句2
Otherwise
执行语句n
End
9.5.Continue语句和break语句
9.6echo语句
通常在执行语句的过程中,命令窗口是看不到执行过程的,但有些时候需要查看程序运行的中间变量,就需要用到echo语句
Echoon:
显示它后面所有执行的命令文件的指令
Echooff:
不显示
Echo:
在显示和不显示来回切换
对于函数形式的M文件:
Echofilenameon:
使filename指定的M文件的执行命令显示出来
Echofilenameoff:
使filename指定的M文件的执行命令显示不显示出来
Echoonall:
将其后所有的M文件的执行指令都显示出来
Echooffall:
将其后所有的M文件的执行指令都不显示出来
9.7error语句
这个函数命令用来指示出错的信息并终止当前函数允许的情况
Error(‘message’)
error后续就没有执行
9.8try..catch语句
Try
(commands1)
Catch
(commands2)
End
9.9input语句
此命令用来提示用于从键盘输入数据、字符串或者表达式,并接收输入值
Variable=input(‘提示信息’):
把提示信息显示在屏幕上,等待用户输入,并将输入的值传入到变量variable
9.10.pause语句
Pause:
停止M文件执行,按任意键继续
Pause(n):
中止执行程序n秒后继续,n为任意的实数
Pauseon:
允许后续的pause命令中止程序的允许
Pauseoff:
禁止后续的pause命令中止程序的允许
10.变量
全局变量:
函数内部定义的变量都是局部变量,如果要想变为全局变量,就需要用global函数阿里进行定义,那么以后任何地方都可以使用了
永久变量:
通过persistent函数来定义,但其只能局限于函数中。
11.函数
M文件中的第一个函数是主函数,主函数之后可以是任意函数的子函数,在命令窗口或M文件中只能调用主函数,调用时就直接调用它的函数名。
嵌套函数:
在一个函数的内部可以再定义多个其他函数,但一个M文件中只能有一个主函数,
局部函数:
把设置在目录private下的函数称为局部函数,这些函数只有private目录的父目录中的函数才可以调用,其他目录下的函数不能调用。
12.函数句柄
函数句柄提供了一种简洁访问函数的手段,用户可以很方便地调用其他函数。
函数句柄的创建比较简单,可以通过特殊符号@来引导函数名,这样就可以实现相应函数句柄的定义操作。
Fhandle=@functionname
比如表达式:
myfhandle=@sin就是创建了一个句柄,名字叫做myfhandle,通过@引导了Matlab系统中的sin函数。
或者也可以把myfhandle去掉,直接调用赋值也行。
函数句柄的操作:
函数名称
说明
Functions
返回函数句柄的相关信息
Isequal
判断两个函数句柄是否为一个相同函数的句柄
Load
从一个M文件中向当前工作区间调用函数句柄
Save
从当前工作区间向M文件保存函数句柄
13.执行函数
执行函数名称
说明
Assignin
在Matlab工作区间中分配变量
Builtin
外部加载调用内置函数
Eval
字符串调用函数
Evalc
执行matlab的表达式
Evalin
计算工作区间中的表达式
Feval
字符串调用M文件
Run
允许脚本文件
Eval(表达式):
执行表达式
Feval(F,x1,x2,…xn):
计算函数表达式F关于x1,x2…xn的值。
14.在Matlab中,系统提供了相应的报错警告函数:
error、waring、lastwarn、errortrap、on/off函数等,最常用的是error和warning
Error(‘m’,a1,a2,…):
m为输出显示的错误信息,a1,a2….是错误的对象名称
Error(‘m_id’,’m’):
这个命令主要给错误信息附加一个特定的信息标识,该标识有利于用户更好的找出错误来源,其中参数m_id就是为错误信息附加的一个特定的信息标识,可以由用户自行设置,而参数m则为输出显示的错误信息。
Error(‘m_id’,’m’,a1,a2,….):
返回带格式的错误信息,并给错误信息附加了特定的信息标识
Nargin函数是用来统计输入参数的个数的。
Warning(‘m’):
这个函数用于返回包括m的警告信息
Warning(‘m_id’,a1,a2….)
上错误的提示是系统提示,如果我们对错误进行了处理,就不会出现系统提示,否则就会出现系统提示。
15.时间控制函数
函数名称
功能
Clck
以向量的形式显示当前的日期和时间
Date
以字符串的形式显示当前的日期
Now
以数值的形式显示当前的时间和日期
Calendar
显示当月的日历表
Weekday
显示当前日期对应的星期表达
Comday
给出指定年月的当月的最后一天
Datetick
指定坐标轴的日期表达式
Datevec
转换为向量形式显示日期
Datenum
转换为数值形式显示日期
Tic
计时开始函数
Toc
计时结束函数
Cputime
以cpu运行的时间方式进行计时
Etime
计算2个时刻的时间差
Datestr函数实现将日期和时间以一种特定的字符串格式显示
Str=datestr(datenum,id):
把datenum转换成id指定的形式,至于id,在表格里寻找
如果id没有,默认是0
Datenum函数将字符型日期和时间转换为数值型的日期
Datevec函数主要用于将其他日期形式转换成向量形式显示日期
里面已经包含了输代码的时间了
从上面可以看出,matlab的计算时间非常快
Cpu计算几乎不花时间
E=etime(t2,t1):
用于返回t1和t2之间的时间段
Pack:
如果在大量的计算之后哟产生一个很大的变量(矩阵):
那么先用peak命令处理一下。
Matlab的Simulink交互仿真:
File→New→Model
点击上面的按钮:
就出来了工具窗体,可以选择很多东西