第5章MATLAB基本程序设计第5章MATLAB基本程序设计主要内容(5)■M文件■输入输出语句■程序控制语句■程序的调试■M文件■输入输出语句■程序控制语句■程序的调试5.1M文件5.1M文件一、主程序(脚本)一、主程序(脚本)1、一个主程序的例子1、一个主程序的例子编写一个双音频程序,显示某个键的波形:编写一个双音频程序,显示某个键的波形:(Hz)(Hz)120912091336133614771477697697112233770770445566852852778899941941**00##5.1M文件5.1M文件设主程序文件名为mydt.m设主程序文件名为mydt.m%产生一个双音频fs=8000;t=(0:1/fs:0.2);f1=697;f2=1209;%键1对应的两个频率y=sin(2*pi*f1*t)+sin(2*pi*f2*t);plot(t,y);wavplay(y,fs)%产生一个双音频fs=8000;t=(0:1/fs:0.2);f1=697;f2=1209;%键1对应的两个频率y=sin(2*pi*f1*t)+sin(2*pi*f2*t);plot(t,y);wavplay(y,fs)5.1M文件5.1M文件2、主程序的组成2、主程序的组成▓帮助段(带注释符%的行)▓帮助段(带注释符%的行)▓程序段▓程序段如果有第一行(function),则主程序为函数文件形式,变量不保存到工作区中,为局部变量.如果有第一行(function),则主程序为函数文件形式,变量不保存到工作区中,为局部变量.如果没有第一行(function),则主程序为命令文件形式,相当于各命令行的集合。变量保存到工作区中.如果没有第一行(function),则主程序为命令文件形式,相当于各命令行的集合。变量保存到工作区中.5.1M文件5.1M文件3、几点说明3、几点说明▓文件名不能为汉字或数字开头▓文件名不能为汉字或数字开头▓注释符%后面的文字不执行▓注释符%后面的文字不执行▓程序的每一行的执行相当于在命令行执行▓程序的每一行的执行相当于在命令行执行▓一行可以写多条语句,以‘,’或‘;’隔开;一行写不下时,以‘…’续行▓一行可以写多条语句,以‘,’或‘;’隔开;一行写不下时,以‘…’续行▓对于命令文件形式,建议在程序段开始用clear,closeall等命令清除以前的变量▓对于命令文件形式,建议在程序段开始用clear,closeall等命令清除以前的变量▓对于函数文件形式,程序中的所有变量均为局部变量。▓对于函数文件形式,程序中的所有变量均为局部变量。5.1M文件5.1M文件二、函数二、函数函数是用用来定义子程序的。主程序实际上也是一个函数(由MATLAB调用)。函数是用用来定义子程序的。主程序实际上也是一个函数(由MATLAB调用)。1、函数头的形式:1、函数头的形式:function函数名()(无变量传递)function函数名(var1,var2,…)(无返回值)function[y1,y2,…]=函数名(var1,var2,…)function函数名()(无变量传递)function函数名(var1,var2,…)(无返回值)function[y1,y2,…]=函数名(var1,var2,…)5.1M文件5.1M文件2、函数的位置2、函数的位置▓函数可以是一个单独的文件(文件名和函数名应相同)▓函数可以是一个单独的文件(文件名和函数名应相同)▓函数也可以放在主程序的后面。▓函数也可以放在主程序的后面。5.1M文件5.1M文件3、举例3、举例根据t,f1,f2生成双音频的函数functionfy=mydtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);该函数可以是单独文件或在主程序后面。例如:mydt1.m根据t,f1,f2生成双音频的函数functionfy=mydtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);该函数可以是单独文件或在主程序后面。例如:mydt1.m5.1M文件5.1M文件%程序mydt1.m产生一个双音频clc;clearall;fs=8000;t=(0:1/fs:0.2);y=dtones(t,697,1209);%键1对应的两个频率plot(t,y);wavplay(y,fs);%函数functionfy=dtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);5.1M文件5.1M文件%程序文件mydt1.m产生一个双音频clc;clear;closeall;fs=8000;t=(0:1/fs:0.2);y=dtones(t,697,1209);plot(t,y);wavplay(y,fs);%函数文件dtones.mfunctionfy=dtones(t,f1,f2)fy=sin(2*pi*f1*t)+sin(2*pi*f2*t);5.1M文件5.1M文件4、全局变量:如果在主程序和函数中使用同一变量,应定义全局变量。globalval1val2…4、全局变量:如果在主程序和函数中使用同一变量,应定义全局变量。globalval1val2…%程序文件mydt2.m产生一个双音频clc;clear;closeall;global...