Matlab 版 (精华区)

发信人: bage (最近比较烦), 信区: Matlab
标  题: Matlab详细教程(四十)
发信站: 哈工大紫丁香 (Sun Feb  4 13:04:56 2001), 转信

发信人: finance (淼水), 信区: MathTools       
发信站: BBS 水木清华站 (Sat Apr  3 16:53:35 1999)

4.5 使用者自定函数

--------------------------------------------------------------------------------

我们在第二章提过的 M-file 除了可以撰写程式外,还有另一个重要的用途,就是可以用来定义函数。这样的函数称为M-档定义的函数,然后储存起来,就可以和那些内建的函数(如sin, cos,log等)一样的自由使用。举例来说,我们可以定义一函数cirarea是计算圆的面积,以下的 
M-file: cirarea.m就是定义这个函数 

% M-file function, cirarea.m 

% Calculate the area of a circle with raduis r 

% r can be a scalar or an array 

function c=cirarea(r) 

c=pi*r.^2;


令一个例子是MATLAB内建的函数linspace 

function y = linspace(d1, d2, n) 

% LINSPACE Linearly spaced vector. 

% LINSPACE(x1, x2) generates a row vector of 100 linearly 

% equally spaced points between x1 and x2. 

% LINSPACE(x1, x2, N) generates N points between x1 and x2. 



% See also LOGSPACE, :. 

% Copyright (c) 1984-94 by The MathWorks, Inc.


if nargin == 2 

n = 100; 

end 

y = [d1+(0:n-2)*(d2-d1)/(n-1) d2];


M-file定义的函数有其语法的一些规定: 

第一行指令以function这个字做为起头,接著是输出的变数,等号,函数名称,输入的变数是接著函数名 称放在括号之内。function out1=userfun(in1),这行的out1是输出的变数,userfun是函数名称,in1是输入的 变数。function [out1, out2]= serfun(in1, in2) 如果输出变数 
[out1,out2] 和输入变数 (in1, in2)不只一个时,则在 输出变数部份须加上 [ ]。 
上述的输入变数是经由使用函数时输入的,而输出的变数即是函数传回的值。 
函数名称的取法的规定与一般变数相同。 
在定义函数程式之前,最好加上注解行来说明这个函数的特色及如何使用,如此的话使用指令如help cirarea,该函数的注解行会出现在指令视窗。 

>> r=1:3; 

>> ar=cirarea(r) % 呼叫 cirarea.m 函数,以阵列 r 为输入变数 

ar = 

3.1416 12.5664 28.2743


>> disp(ar) % 指令 disp 可以将变数值直接列出 

3.1416 12.5664 28.2743



--------------------------------------------------------------------------------
  
上一页 下一页 讲义大纲  
--
行至水穷处,坐看云起时
***********************
菩提本无树,明镜亦非台
本来无一物,何处染尘埃

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bage.bbs@smth.org]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.294毫秒