Matlab编程资源库(3)函数文件

一、函数文件的基本结构

       函数文件由 function 语句引导,其基本结构 为:
       function 输出形参表 = 函数名 ( 输入形参表 )
       注释说明部分
       函数体语句
       其中以 function 开头的一行为引导行,表示该 M 文件是一个函数文件。函数名的命名规则 与变量名相同。输入形参为函数的输入参 数,输出形参为函数的输出参数。当输出 形参多于一个时,则应该用 方括号 括起来。
3-14 编写函数文件求半径为 r 的圆的面积 和周长。
函数文件如下:
function [s,p]=fcircle(r)
%CIRCLE calculate the area and perimeter 
of a circle of radii r
%r 圆半径
%s 圆面积
%p 圆周长
%2004年
7
月30日编
s=pi*r*r;
p=2*pi*r;

二、函数调用

       函数调用的一般格式是:
       [ 输出实参表 ]= 函数名 ( 输入实参表 )
       要注意的是,函数调用时各实参出现 的顺序、个数,应与函数定义时形参 的顺序、个数一致,否则会出错。函 数调用时,先将实参传递给相应的形 参,从而实现参数传递,然后再执行 函数的功能。
3-15 利用函数文件,实现直角坐标 (x,y) 与极坐 ( ρ , θ ) 之间的转换。
函数文件 tran.m
function [rho,theta]=tran(x,y)
rho=sqrt(x*x+y*y);
theta=atan(y/x);
调用tran.m的命令文件main1.m:
x=input('Please input x=:');
y=input('Please input y=:');
[rho,the]=tran(x,y);
rho
the
       在MATLAB 中,函数可以 嵌套调用 ,即一个函数 可以调用别的函数,甚至调用它自身。一个函数调用它自身称为函数的 递归调用

运行结果 :

3-16 利用函数的递归调用,求 n !。
n! 本身就是以递归的形式定义的:
显然,求 n! 需要求 (n-1)! ,这时可采用递归调 用。
递归调用函数文件 factor.m 如下:
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n; %递归调用求(n-1)!
end

三、函数参数的可调性

       在调用函数时, MATLAB 用两个永久 变量 nargin nargout 分别记录调用该 函数时的输入实参和输出实参的个数。 只要在函数文件中包含这两个变量, 就可以准确地知道该函数文件被调用 时的输入输出参数个数,从而决定函 数如何进行处理。
3-17 nargin 用法示例。
函数文件 examp.m
function fout=charray(a,b,c)
if nargin==1
fout=a;
elseif nargin==2
fout=a+b;
elseif nargin==3
fout=(a*b*c)/2;
end
命令文件 mydemo.m
x=[1:3];
y=[1;2;3];
examp(x)
examp(x,y')
examp(x,y,3)

运行结果 :

四、全局变量与局部变量

全局变量用 global 命令定义,格式为:
global 变量名
3-18 全局变量应用示例。
先建立函数文件 wadd.m ,该函数将输入的参数加权相加。
function f=wadd(x,y)
global ALPHA BETA
f=ALPHA*x+BETA*y;
在命令窗口中输入:
global ALPHA BETA
ALPHA=1;
BETA=2;
s=wadd(1,2)

 结语 

合理安排时间

就等于节约时间

!!!

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT 青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值