- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
M文件及程序调试;
〔1〕指令驱动模式
即在MATLABM命令行窗口下用户输入单行指令时,MATLAB马上处理这条指令,并显示结果,这就是MATLAB命令行方式。
缺点:命令行方式程序可读性差,而且不能存储,当处理复杂问题和大量数据时很不方便。
〔2〕M文件模式
将MATLAB语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。;M语言文件可以分为主程序文件和函数文件
一个M语言文件就是由假设干MATLAB的命令组合在一
起构成的。
M语言文件是标准的纯文本格式的文件,其文件扩
展名为.m。
MATLAB提供了meditor编辑器编辑M文件
注意:
(1)不可用汉字命名〔假设用汉字命名虽然可以打开M文件,但是编译运行时会出错〕;
(2)文件名不可与MATLAB内置函数重名;
(3)文件名不可以以数字命名。
;主程序文件〔脚本文件〕;函数文件〔相当于C语言的子函数〕;functiony=mean(x)
%求平均值
〔3〕函数体:函数所用计算过程和输入输出参数赋值的MATLAB代码;
这里可以为调用函数、流程控制、交互式输入输出、计算、赋值等。
[m,n]=size(x);
ifm==1
y=sum(x)/n;
else
y=sum(x)/m;%把每一列做平均值运算
end
;主程序文件调用y=mean(x)的方法;函数文件例2:比较两个数大小;function[avg,stdev,r]=ourstats(x)
%ourstats多输入输出参数示例
%该函数计算处理矩阵,得到相应的均值、标准差和矩阵的秩
[m,n]=size(x);
ifm==1
m=n;
end
%Average
avg=sum(x)/m;
%Sandaddeviation
stdev=sqrt(sum(x.^2)/m-avg.^2);
%Rank
r=rank(x);
;运行
A=[123;456]
A=
123
456
[a,s,r]=ourstats(A)
a=
s=
r=
2
[a,s]=ourstats(A)
a=
s=
;子函数应用例1
function[avg,med]=newstats(u)%主函数
%NEWSTATS计算均值和中间值
n=length(u);
avg=mean(u,n);%调用子函数
med=median(u,n);%调用子函数
functiona=mean(v,n)%子函数
%计算平均值
a=sum(v)/n;
functionm=median(v,n)%子函数
%计算中间值
w=sort(v);%从小到大排序
ifrem(n,2)==1
m=w((n+1)/2);
else
m=(w(n/2)+w(n/2+1))/2;
end;使用global关键字创建全局变量时有三种状况
〔1〕假设声明为全局的变量在当前空间和全局空间都不存在,则创建一个新的变量,然后为这个变量赋值为空数组,该变量同时存在于局部工作空间和全局工作空间
〔2〕假设声明为全局的变量已经存在与全局空间中,则不会在全局工作空间创建新的变量,其数值同时赋值给局部工作空间中的变量
〔3〕假设声明为全局的变量存在于局部工作空间中,而全局工作空间不存在,则系统会提示一个警告信息,同时将局部的变量“挪〞到全局工作空间中;全局变量和局部变量实例;这类变量在MATLAB中被声明为persistent
这类变量在函数退出时不被释放,当函数再一次被调用时,变量保留上次退出时的值
保留变量的特征
〔1〕变量仅能在声明变量的函数内使用,其他函数不能直接使用保留变量
〔2〕函数执行退出后,MATLAB不清除保留变量占用的内存
〔3〕当函数被清除或者重新编辑后,保留的变量被清除;functiony=persistent_example(x)
%PERSISTENT_EXAMPLE保留变量使用示例
fori=1:x
y=myfun;
end
function
文档评论(0)