云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > matlab4

matlab4

  • 62 次阅读
  • 3 次下载
  • 2025/7/15 18:02:23

新疆大学重点课程·电子教案 17 页 共 41 页

调用 tran.m 的命令文件 main1.m: x=input('Please input x=:'); y=input('Please input y=:'); [rho,the]=tran(x,y); rho the

例 利用函数的递归调用,求 n!。 递归调用函数文件 factor.m: function f=factor(n) if n<=1 f=1; else

f=factor(n-1)*n; end

在 命 令 文 件 main2.m 中 调 用 函 数 文 件 factor.m 求s=1!+2!+3!+4!+5!。

当在 Matlab 命令行或其他 M 文件调用函数时,应当包括所有必须 的参数。

在 Matlab 中遇到一个新名字时,在把它解释为一个函数之前要进行以下检查工作:

? 检查是否是一个变量的名字;

? 检查是否是一个子函数的名字,子函数在调用函数内部; ? 检查是否是一个私有函数;

? 检查是否是一个在 Matlab 搜索路径下的函数,如果有几个相同名字的函数,Matlab 将使用第一个。

3、函数所传递参数的可调性(检查输入输出参数的数目) 在调用函数时,MATLAB 用两个永久变量 nargin 和 nargout 分别记录调用该函数时的输入实参和输出实参的个数。只要在函数文件 中

新疆大学重点课程·电子教案 18 页 共 41 页

包含这两个变量,就可以准确地知道该函数文件被调用时的输入 输出参数个数,从而决定函数如何进行处理。 n=nargin 返回函数指定的输入参数

n=nargin('fun') 返回指定函数声明的输入参数的数目,如果返回 为-1,表明具有可变数目的输入参数

n=nargout 返回函数指定的输出参数 n=nargout('fun') 返回指定函数声明的输出参数的数目 例 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)

4、传递可变数目的输入输出参数

varargin 和 varargout 变量可以让函数文件传递任意数量的输入输 出参数,Matlab 将所有指定的输入输出打包成细胞数组,每个细胞(cell)可以包含任意大小和类型的数据。 (1)传递可变数目的输入参数

新疆大学重点课程·电子教案 19 页 共 41 页

例:函数接收任意数量的两单元矢量输入参数,并画一条线来连接它们:

function testvar(varargin) %取出 varargin 中的所有输入值 for i = length(varargin) x(i) = varargin{i}(1);

%第一个下标表示细胞数组的第 i 个 cell, %第二个下标表示指定 cell 的第 1 个成员 y(i)= varargin{i}(2); end

%设定坐标并画 varargin 图 xmin = min(0,min(x)); ymin = min(0,min(y));

axis([xmin fix(max(x)) + 3 ymin fix(max(y)) + 3]) plot(x,y)

这样函数 testvar 就可以处理可变的输入列表,如 testvar([2 3],[1 5],[4 8],[6 5],[4 2],[2 3]) testvar([-1 0],[3 –5],[4 2],[1 1]) (2)传递可变数目的输出参数

要传递任意数量的输出参数,就要把全部输出打包到 varargout 细 胞数组,这里可以用 nargout 来确定调用函数时输出列表中项的数 目。 例:

function [varargout]=mysize(x)

s=size(x); for i=1: nargout varargout(i) = {s(i)};

新疆大学重点课程·电子教案 20 页 共 41 页

end

在命令窗口中输入: [rows,cols]=mysize(rand(4,5)) (3)在参数列表中应用

如果在参数列表中使用 varargin 和 varargout,必须把 varargin 和 varargout 放在参数列表的最后面。在调用函数时,必须指定需要 的参数,使用形式为:

function [out1,out2]=example1(a,b,varargin) function [i,j,varargout]=example2(x1,y1,x2,y2,flag) 例:输入参数列表函数: function myplot(x,varargin) plot(x,varargin{:}) 调用函数:

myplot(sin(0:.1:1),'color',[.5,.7,.3],'linestyle',':') 例:输出参数列表 函数:

function [s,varargout]=mysize(x) nout=max(nargout,1) –1; s=size(x); for i=1: nout

varargout(i) = {s(i)}; end 调用函数:

[s, rows, cols]= mysize(rand(4,5));

5、全局变量和局部变量

全局变量用命令 global 定义。函数文件的内部变量是局部的,与其 他函数文件及 MATLAB 工作空间相互隔离。

搜索更多关于: matlab4 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

新疆大学重点课程·电子教案 17 页 共 41 页 调用 tran.m 的命令文件 main1.m: x=input('Please input x=:'); y=input('Please input y=:'); [rho,the]=tran(x,y); rho the 例 利用函数的递归调用,求 n!。 递归调用函数文件 factor.m: function f=factor(n) if n<=1 f=1; else f=factor(n-1)*n; end 在 命 令 文 件 main2.m 中 调 用 函 数 文 件 fa

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com