matlab中m文件与m函数的学习与理解

1. m文件与m函数的区别

所谓 MATLAB 程序,大致分为两类:

M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件。

  M 脚本文件中包含一族由 MATLAB 语言所支持的语句,它类似于 DOS 下的批处理文件,它的执行方式很简单,用户只需在 MATLAB 的提示符 >> 下键入该 M 文件的文件名,这样 MATLAB 就会自动执行该 M 文件中的各条语句,并将结果直接返回到 MATLAB 的工作空间。

  M 函数格式是 MATLAB 程序设计的主流,一般情况下, 不建议您使用 M 脚本文件格式编程。

  MATLAB 的 M 函数是由 function 语句引导的,其基本格式如下:

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

2.输入变量和返回变量的个数

  这里输入和返回变量的实际个数分别由 nargin nargout 两个 MATLAB 保留变量来给出,只要进入该函数,MATLAB 就将自动生成这两个变量,不论您是否直接使用这两个变量。

  返回变量如果多于 1 个,则应该用方括号将它们括起来,否则可以省去方括号。输入变量和返回变量之间用逗号来分割。

3.注释语句的使用

  注释语句段的每行语句都应该由百分号 % 引导,百分号后面的内容不执行,只起注释作用。用户采用 help 命令则可以显示出来注释语句段的内容。此外,正规的变量个数检测也是必要的。如果输入或返回变量格式不正确,则应该给出相应的提示。我们将通过下面的例子来演示函数编程的格式与方法。

假设我们想生成一个 nxm 阶的 Hilbert 矩阵, 它的第 i 行第 j 列的元素值为 1/(i+j-1)。我们想在编写的函数中实现下面几点:
如果只给出一个输入参数,则会自动生成一个方阵,即令 m=n
在函数中给出合适的帮助信息,包括基本功能、调用方式和参数说明
检测输入和返回变量的个数,如果有错误则给出错误信息 

  如果调用时不要求返回变量,则将显示结果矩阵。其实在编写程序时养成一个好的习惯,无论对程序设计者还是对程序的维护者、使用者都是大有裨益的。


4. 示例程序


  采用 MATLAB 函数编写格式和上述要求,我们可以编写出一个函数

function A=myhilb(n, m)
%MYHILB a demonstrative M-function.
% A=MYHILB(N, M) generates an N by M Hilbert matrix A.
% A=MYHILB(N) generates an N by N square Hilbert matrix.
% MYHILB(N,M) displays ONLY the Hilbert matrix, but do not return any
% matrix back to the calling function.
%
%See also: HILB.

% Designed by Professor Dingyu XUE, Northeastern University, PRC
% 5 April, 1995, Last modified by DYX at 21 March, 2000
if nargout>1, error('Too many output arguments.'); end
if nargin==1, m=n;
elseif nargin==0 | nargin>2
error('Wrong number of iutput arguments.');
end
A1=zeros(n,m);
for i=1: n
for j=1:m
A1(i,j)=1/(i+j-1);
end, end
if nargout==1, A=A1; elseif nargout==0, disp(A1); end

这样规范编写的函数用 help 命令可以显示出其帮助信息:

>> help myhilb
MYHILB a demonstrative M-function.
A=MYHILB(N, M) generates an N by M Hilbert matrix A.
A=MYHILB(N) generates an N by N square Hilbert matrix.
MYHILB(N,M) displays ONLY the Hilbert matrix, but do not return any
matrix back to the calling function.

See also: HILB.

  有了函数之后,可以采用下面的各种方法来调用它,并产生出所需的结果。

>> A=myhilb(3,4)
A =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
>> A=myhilb(4)
A =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
>> myhilb(4)
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429

5.MATLAB 工具箱编写技巧

  放入一个目录中的为某种目的专门编写的一组 MATLAB 函数就可以组成一个工具箱。 从某种意义上说,任何一个 MATLAB 语言的使用者都可以是工具箱的作者。在一个工具箱中,应该有一个名为 Contents.m 的文件,用来描述工具箱中所有 MATLAB 函数的名称和意义。

  

在该文件中第 1 行应该给出该工具箱的名称,在第2行中给出该工具箱的版本与修改时间等信息。
然后分类地给出该工具箱中各类函数的最基本功能。
注意,本文件中所有的语句都应该是注释语句,由百分号 % 引导,空行也应该由 % 引导。

  

6.检查matlab语法错误

  另外,因为 MATLAB是一种解释性语言,所以即使在某个或某些函数中存在语法错误,但如果没执行到该语句时可能就不会发现该错误,这在一个成功的程序设计中是不能容许的。要查出某目录中所有的M函数语法错误,首先应该用 cd 命令 进入该目录,然后运行 pcode * 命令进行伪代码转换。因为该命令会将 MATLAB 函数转换成伪代码,而在转换过程中该程序将自动翻译每一条语句,所以一旦发现有语法错误,将会停止翻译,给出错误信息。改正了该语法错误后,再重新执行 pcode 命令,直到没有错误为止。至少这样会保证目录下所有的程序不含有语法错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题似乎是以非文编码的方式显示的,但我理解你的意思。 Matlab函数的使用方法可以通过以下步骤来实现: 1. 首先,将函数文件保存在Matlab工作目录或路径下; 2. 然后,使用Matlab命令窗口或脚本调用函数; 3. 在调用函数时,输入所需的参数。 4. 运行代码并查看结果。 需要注意的是,对于每个函数,其输入参数和返回结果的格式都可能不同,因此需要仔细阅读函数的文档或者帮助手册。 ### 回答2: m_proj函数Matlab用于绘制地图投影的函数,它有多种使用方法。下面就介绍几种常用的用法。 1.绘制地图 使用m_proj函数可以绘制地图,首先要设置地图投影方式和经纬度范围,例如: m_proj('mercator','longitudes',[100 140],'latitudes',[20 45]); 这里使用了mercator投影方式,经度范围为100度到140度,纬度范围为20度到45度。 2.绘制地图上的点和线段 有了地图之后,可以在地图上绘制点和线段,例如: m_plot(lon,lat,'g','linewidth',2) lon和lat是要绘制点或线段的经纬度数据,'g'指定了绘制的颜色为绿色,'linewidth'指定了线段的宽度为2。 3.绘制地图上的文本标注 在地图上添加文本标注也很方便,例如: m_text(lon,lat,'这是一个文本标注','fontsize',14) lon和lat指定了标注的位置,'这是一个文本标注'是要添加的文本内容,'fontsize'指定了字体大小为14。 4.绘制地图上的填充物 可以使用m_patch函数来在地图上添加填充物,例如: m_patch(lon,lat,'r') lon和lat是要添加填充物的经纬度数据,'r'指定了填充的颜色为红色。 总之,m_proj函数Matlab非常常用的地图绘制函数,掌握了它的用法,可以轻松地绘制出各种有趣的地图。 ### 回答3: m_proj是matlab的一个函数,主要用于绘制地图。它可以绘制出全球地图以及各种地图投影方式,同时支持各种常用的地图数据格式。m_proj函数的语法如下: m_proj(projection type,'lon',[min max],'lat',[min max],[optional parameters]) 其,projection type指定了地图投影方式,可以是'robinson'、'mercator'、'stereo'、'hammer'等;'lon',[min max]和'lat',[min max]指定了经度和纬度的范围,[optional parameters]为可选参数。 m_proj函数的使用步骤如下: 1. 设置投影方式:m_proj('projection type')。 2. 设置经纬度范围:m_proj('lon',[min max],'lat',[min max])。 3. 准备地图数据:使用m_edata函数加载地图数据,或手动设置经纬度值和数据值。 4. 绘制地图:使用m_pcolor、m_contourf等函数绘制地图。 5. 设置标注和标题:使用m_grid、m_text等函数设置标注和标题。 m_proj函数的可选参数有很多,包括设置地图边界线条粗细、颜色、设置缩放比例、设置颜色之间的映射等。通过调整这些参数可以得到各种精美的地图效果。 在使用m_proj函数绘制地图时,要注意投影方式和经纬度范围的设置,以及地图数据的处理。此外,还可以根据实际需求增加更多的可选参数,以实现更加复杂的地图绘制效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值