admin 管理员组文章数量: 1184232
2024年3月27日发(作者:slider scouts下载)
实验三 M 文件及 MATLAB 程序设计与调试
一、实验目的
全面掌握在 MATLAB 下进行程序设计的有关问题,具体涉及到 M 脚本文件和 M 函
数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程
序调试等问题。
二、实验内容
1、关于 M 脚本文件和 M 函数文件
MATLAB 的 M 文件有两类:脚本文件和函数文件。
(1)脚本文件——将原本要在 MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为
后缀的,称为脚本文件中。有了脚本文件,可直接在 MATLAB 中输入脚本文件名(不含后
缀)。MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在
MATLAB 中直接输入语句的结果完全一致。
(2)函数文件——它的第一行必须是函数定义行。
M 函数文件由 5 部分构成:
◆ 函数定义行
◆ H1 行
◆ 函数帮助文本
◆ 函数体
◆ 注释
注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。但作为一个函数,
为了提高函数的可用性,应加上 H1 行和函数帮助文本,为了提高函数的可读性,应加上
适当的注释。
例如:
function y = mean(x)
% MEAN Average or mean value.
% For vectors, MEAN(X) is the mean value of the elements in X.
% For matrices, MEAN(X) is a row vector containing the mean value of each column.
[m,n]=size(x);
if m==1
% Determine whether x is a vector
m=n;
end
y = sum(x)/m;
① 函数定义行:function y = mean(x)
function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量。当函
数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括
起。
例如: function [x,y,z]=sphere(theta, phi, rho)。
当函数不含输出变量时,则直接略去输出部分或采用空方括号表示,
例如:function printresults(x) 或function [ ]=printresults(x)
所有在函数中使用和生成的变量都为局部变量(除非利用 global 语句定义),这些变量
值只能通过输入和输出变量进行传递。因此,在调用函数时应通过输入变量将参数传递给函
数;函数调用返回时也应通过输出变量将运算结果传递给函数调用者;其它在函数中产生的
变量在返回时被全部清除。
② H1 行:描述了函数的“功能”信息(很重要!)
函数文件中第二行一般是注释行,这一行称为 H1 行,实际上它是帮助文本中的第一行。
H1 行不仅可以由 help funtion-name 命令显示,而且,lookfor 命令只在 H1 行内搜索,
③ 函数帮助文本:用来比较详细地说明这一函数的用法
以%开头,输入时 help funtion-name 命令,可显示出 H1 行和函数帮助文本。
④ 函数体:完成指定功能的语句实体
可采用任何可用的 MATLAB 命令,包括 MATLAB 提供的函数和用户自己设计的 M
函数。
⑤注释
备注:
函数定义名和保存文件名必须一致。两者不一致时,MATLAB 将忽视文件首行的
函数定义名,而以保存文件名为准;
函数文件的名字必须以字母开头,后面可以是字母、下划线以及数字的任意组合,
但不得超过 63 个字符;
建议在编写 H1 行时,采用英文表达。这样处理是为了以后关键词检索方便。
(3)脚本文件和函数文件比较
比较项
定义行 无需定义行
脚本文件
必须有定义行
有
通过输入变量获得输入数据;通过输出变量提交结果
精心设计完成指定功能
MATLAB 功能扩展
函数文件
输入/输出变量 无
数据传送
编程方法
用途
直接访问基本工作空间中的所有变量
直接选取 MATLAB 中执行的语句
重复操作
函数文件去掉其第一行的定义行,就转变成了脚本文件。但这样一来使用的局部变量就
成了基本工作空间中的变量,这会带来几个问题:
基本工作空间中与脚本文件中同名的变量会引起冲突
使基本工作空间中变量数急剧增加,造成内存紧张
编程时要细心考虑各个脚本文件所用到的变量
这些问题在函数文件中不复存在,MATLAB 通过实参与形参一一对应的方式来实现函
数的调用,这极大地方便了程序设计。
举例:分别编写出求取平均值与标准差的脚本文件 stat1.m 和函数文件 stat 2.m。
stat1.m %脚本文件
%求阵列 x 的平均值和标准差
[m,n]=size(x);
if m==1
版权声明:本文标题:实验三 M 文件及 MATLAB 程序设计与调试 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711515434a597859.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论