matlab程序设计。
在以前所介绍的各种运算中,命令或函数的输入都是在命令窗口下进行的,这是一种计算器输入方式,其命令的执行属于交互式的,即:在命令窗口逐条输入命令,matlab就逐条解释执行。这种命令输入方式操作简单、直观,但随着指令数的增加,或程序复杂程度的增加,这种命令输入方式就显得繁琐(因为输入过程也伴随执行过程)、而且执行程序不能保留,不能反复使用。
为了解决这些问题,必须将程序保存在一个文件中。在matlab中,这种文件是以。m为扩展名的,称为m文件。
1.1 m文件。
m文件是文本文件,它可以用任何文本编辑器编辑,如用记事本、word等编辑。但是通常用matlab提供的文本编辑器编辑。
启动matlab文本编辑器编辑的方法有3种。
1.菜单操作:“file”菜单“new”“m-file”
2.命令按钮操作:点击matlab主窗口工具栏上的“new m-file”按钮。
3.命令操作:在matlab命令窗口输入命令:edit
打开的编辑器后,输入程序后,可以以m为扩展名保存在某一个目录中。
matlab的。m文件保存的命名规则:
1.文件名命名要用英文字母、数字和下划线等符号。第1个字符必须是英文字母,matlab对大、小写会进行区分。
2.文件名不要取为matlab的一个固有函数(系统函数,如sin),m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成。原因是简单的单词命名容易与matlab内部函数名同名,结果会出现一些莫名其妙的错误。
3、文件存储路径一定为英文。
4、m文件起名不能有空格,如three phase,应该写成three_phase或者threephase
如果要打开已有的m文件,方法也有3种。
1.菜单操作:“file”菜单“open…”,这时出现“open”对话框。在“文件类型”下拉栏中选“m-files (.m)”,再在某一个目录中选择所需要的m文件。
2.命令按钮操作:点击matlab主窗口工具栏上的“open file”按钮。
3.命令操作:在matlab命令窗口输入命令:edit 文件名。
m文件分为两种,一种是脚本文件(命令文件),另一种是函数文件。
一、脚本文件。
脚本文件就是以前在命令窗口输入的诸多命令的简单迭加,但是在输入过程中,并不伴随执行,而是全部输入完后保存下来,什么时候想执行就什么时候执行,命令完全按编写顺序执行。这就解决了在命令窗口运行多条命令的麻烦,同时也可以使保存的程序反复使用。
例1 用图形表示连续调制波形及其包络线。
clear workspace和clear command window
在matlab文本编辑器编辑。
t=(0:pi/100:pi<1>
y1=sin(t)*[1,-1<2>
y2=sin(t).*sin(9*t<3>
figure,plot(t,y1,'r:',t,y2,'b<5>
axis([0,pi,-1,1]);title('连续调制波形');legend('包络线1','包络线2','调制波')
“debug(调试)”菜单“s**e and run”生成脚本文件,并运行它。
注意workspace中的变量变化。
如果workspace中原来没有储存变量,这时,m脚本文件中有几个变量,workspace中就会生成几个变量。
而且,这些变量可以被其它命令或函数调用。
例2 在命令窗口输入。
figure,plot(t,y2,'b')
在本例中,在命令窗口中,并没有给t,y2赋值,它们的数据都取自运行脚本文件时在workspace中生成的变量。
同样,在workspace中的变量也可以被m文件调用。
例3 matlab文本编辑器编辑。
y1=sin(t)*[1,-1<2>
y2=sin(t).*sin(9*t<3>
figure,plot(t,y1,'r:',t,y2,'b<5>
axis([0,pi,-1,1]);title('连续调制波形');legend('包络线1','包络线2','调制波')
点击“file”菜单“s**e as…”,生成脚本文件。
在这个文件中,没有给变量t赋值。
clear workspace和clear command window
在命令窗口输入。
t=(0:pi/100:pi)';
这时在workspace中生成t变量。
在matlab文本编辑器中,“debug(调试)”菜单“run”
在本例中,m脚本文件中的程序是借助workspace中的t变量运行。
以上所介绍的变量,无论是在命令窗口中赋值的,还是在m脚本文件中赋值的,只要能储存在workspace中,都称为全局变量。
二、函数文件。
m函数文件是以function为第1行的文件。
它的基本结构如下:
function [输出变量列表]=函数名(输入变量列表)
注释说明语句段,由%引导。
函数语句体。
说明:1.在[输出变量列表]中,如果只有一个变量,方括号可以省略。
2.在这种文件中,输入变量列表中所列出的变量并没有被赋值。因此m函数文件本身不能像m脚本文件那样独立地运行。它只能被其它文件或命令调用。
在调用过程中,必须在命令窗口或其它文件中将输入变量列表中所列出的变量赋值。
3.函数的调用格式为:[输出变量列表]=函数文件名(输入变量列表)
例4 用图形表示连续调制波形及其包络线。
在matlab文本编辑器编辑。
function [y1,y2]=test3(t,n)
)y1=sin(n.*t)*[1,-1<2>
y2=sin(n.*t).*sin(9*t<3>
figure,plot(t,y1,'r:',t,y2,'b<5>
axis([0,pi,-1,1]);title('连续调制波形');legend('包络线1','包络线2','调制波。
点击“file”菜单“s**e as…”,生成函数文件。
在这个文件中,输入变量列表中的变量t,n并没有被赋值。
下面是对这个函数文件的调用。
clear workspace和clear command window
在命令窗口输入。
t=(0:pi/100:pi)';n=1; %n=1时,与例1的情况相同。
y1,y2]= test3 (t,n);
在这个例子中,如果给t和n赋不同的值,可以产生不同的结果。
例5 用图形表示连续调制波形及其包络线。
clear workspace和clear command window
在命令窗口输入。
t=(0:pi/100:pi)';n=2; %n=1时,与例1的情况相同。
y1,y2]= test3 (t,n);
在上两个例子中,在workspace都产生变量t、n、y1、y2,这和test3函数文件中的出现的变量及其数目是相同的。但是,这仅仅是巧合。
例6 用图形表示连续调制波形及其包络线和零点。
在matlab文本编辑器编辑。
function [y1,y2]=test4(t,n)
y1=sin(n.*t)*[1,-1<2>
y2=sin(n.*t).*sin(9*t<3>
t3=pi*(0:9)/9
y3=sin(t3).*sin(9*t3);
figure, plot(t,y1,t,y2,t3,y3,'mo');axis([0,pi,-1,1]);title('连续调制波形');legend('包络线1','包络线2','调制波','零点')
点击“file”菜单“s**e as…”,生成函数文件。
与函数文件相比,函数文件中多了t3和y3变量,而且它们并没有出现在文件的输入列表或输出列表中。
clear workspace和clear command window
在命令窗口输入下面的命令,注意观察workspace的变化。
t=(0:pi/100:pi)';n=1; %n=1时,与例1的情况相同。
y1,y2]= test4(t,n);
可以看到,虽然函数文件中多了t3和y3变量,但是在workspace并没有显示出来。在workspace显示的是变量t、n、y1、y2。
实际上,变量t、n、y1、y2显示在workspace也是一种巧合。
例7 用图形表示连续调制波形及其包络线和零点。
clear workspace和clear command window
在命令窗口输入下面的命令,注意观察workspace的变化。
s=(0:pi/100:pi)';m=1;
z1,z2]= test4 (s,m);
这时,在workspace,根本看不到函数文件定义的变量。以前之所以在workspace能看到函数文件定义的变量,那是因为在命令窗口输入的变量碰巧和函数文件定义的变量一致。
从上面的分析看到,m函数文件的变量与m脚本文件的变量不同,并不存在于workspace。
实际上,每当函数文件运行时,matlab专门为函数文件开辟一个临时工作区间(context workspace)。该空间称为函数工作区间(function workspace)。所有中间变量都存放在函数工作区间中,当matlab执行完函数文件的最后一条指令后,或遇到return命令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量立即被清除。
这些存在于函数空间的中间变量称为局部变量。它产生于该函数的运行过程中,其影响范围仅限于该函数本身。
注意,在函数文件中也可以产生全局变量。这时需要通过global指令预先定义。由于全局变量会损害函数的封闭性,因此不提倡在函数文件中使用全局变量。
3.m函数文件的名称可以与函数名不同。
例8 将另存为并将它的函数名改为“sin”
clear workspace和clear command window
在命令窗口输入。
t=(0:pi/100:pi)';n=1; %n=1时,与例1的情况相同。
2019远程培训作业黄霖
三 教师要敢于制造合理的矛盾冲突,引导学生思维,不断制造学习矛盾。张老师的 课中,我多次看到她 故意制造的学习冲突 以学习矛盾的形式引领学生学习的深入,激发学生的兴趣,启发学生的思维,起到了很好的有效性指导和评价的作用。这一点,是值得我们每位高中地理教师学习的。因此,地理教师应当内修实力,外修应变,...
王岭中学2023年校本培训计划
一 指导思想 以科学发展观为指导,积极贯彻全国和汨罗市教育工作会议精神,坚持 质量立校,管理兴校,科研强校 的办学思想,以打造 高效课堂 提高课堂教学质量为各项工作的切入点,以 双提升,双满意 为工作的出发点和归宿,努力办人民满意的教育 人民放心的教育。二 工作目标 通过培训力争使我校教师具有以下素...
2023年铜黄项目部安全培训
1 施工安全生产必须坚持 安全第。一 预防为主 的方针。2 安全第一 是原则和目标,是从保护和发展生产力的角度,明确了生产与安全的关系,肯定了安全在建设工程生产活动中的重要地位。3 安全第一 的方针,就是要求所有参与工程建设的人员,包括管理者和从业人员以及对工程建设活动进行监督管理的人员都必须树立安...