• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB的M文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

M文件可分为脚本M文件(简称脚本文件)函数M文件(简称函数文件)两大类,其特点和适用领域均不同。

脚本文件

脚本文件是由MATLAB语句构成的文本文件,以.m为扩展名。运行命令文件的效果等价于从MATLAB命令窗口中按顺序逐条输入并运行文件中的指令,类似于DOS下的批处理文件。脚本文件运行过程所产生的变量保留在MATLAB的工作空间中,脚本文件也可以访问MATLAB当前工作空间的变量,其他脚本文件和函数可以共享这些变量。因此,脚本文件常用于主程序的设计。

例题

编写脚本文件,对数a、b、c进行排序,并按从大到小的顺序输出。

% compareABC.m
a = input("Enter a:");
b = input("Enter b:");
c = input("Enter c:");

sort([a,b,c],\'descend\')

  1. 选择好工作目录
  2. 新建一个脚本文件命名为compareABC.m
  3. 在脚本文件中编写代码
  4. 点击运行按钮
  5. 在命令行窗口作输入输出
  6. 查看工作区的变量情况

函数文件**

函数文件是M文件的另一种类型,它也是由MATLAB语句构成的文本文件,并以.m为扩展名MATLAB的函数文件必须以关键字function语句引导,其基本结构如下:

function [返回参数1,返回参数2,....] = 函数名(输入参数1,输入参数2,...)
% 注释说明语句段,由%引导
输入、返回变量格式的检测语句
函数体语句

函数文件具有如下特点。
(1)函数名由读者自定义,与变量的命名规则相同。
(2)保存的文件名必须与定义的函数名一致。
(3)读者可通过返回参数及输入参数来实现函数参数的传递,但返回参数和输入参数并不是必须的。返回参数如果多于1个,则应该用中括号“[]”将它们括起来;输入参数列表必须用小括号“()”括起来,即使只有一个输入参数。
(4)注释语句段的每行语句都应该用%引导,%后面的内容不执行。用户可用help命令显示出注释语句的内容,用于函数使用前的信息参考。
(5)如果函数较复杂,则正规的参数格式检测是必要的。如果输入或返回参数格式不正确,则应该给出相应的提示。
(6)函数中输入和返回参数的实际个数分别有MATLAB内部保留变量nargin和nargour给出,只要运行了该函数,MATLAB将自动生成这两个变量,因此用户编程时可直接使用。
(7)与一般高级语言不同的是,函数文件末尾处不需要使用end命令。

例题

编写函数文件,实现一个n行m列矩阵,使得该矩阵第i行第j列元素值为1/(i+j-1)。要求在编写的函数中实现如下几点:
(1)如果只给出一个输入,则会自动生成一个方阵;
(2)在函数中给出合适的注释信息;
(3)检测输入和返回变量的个数,如果有错误则给出错误信息。

% makeMatrix.m   函数文件
function A = makeMatrix(n, m)
% makeMatrix 
% 实现一个n行m列矩阵,使得该矩阵第i行第j列元素值为1/(i+j-1)
% A = makeMatrix(n,m) 创建一个n行m列矩阵
% A = makeMatrix(n) 创建一个n阶方阵

if nargout > 1
   error(\'Too many output arguments!\');
end 
if nargin == 1
    m = n;
elseif (nargin ==0) ||(nargin > 2)
    error(\'Wrong number of input arguments!\');
end
    A = zeros(n,m);
for i = 1:n
    for j = 1:m
        A(i,j) = 1/(i+j-1);
    end
end
end


% callfunction.m 脚本文件
A = makeMatrix(2,3); %调用函数
disp(A)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中MD5实现方法(转)发布时间:2022-07-18
下一篇:
Delphi编程中动态菜单要点归纳发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap