本节介绍一下 MATLAB 的函数参数。具体的操作步骤如下:

确定函数参数数量

当调用一个函数时,所用的输入变量和输出变量的数量,在函数内是确定的。nargin 函数确定输入变量个数,nargout 函数确定输出变量个数。

示例1

nargin 函数和 nargout 函数的使用,具体程序如下:

function c = testarg1(a, b)

if(nargin == 1)

c = a .^ 2;

elseif(nargin == 2)

c = a + b;

end

如果用户使用一个参数调用 testarg 1 函数,则函数计算输入值的平方;如果使用两个参数调用 testarg 1 函数,则函数计算输入值之和。

传递可变数量的参数

varargin 和 varargout 函数允许编程者传递可变数量的变量给函数或者让函数返回可变数量的变量。

MATLAB 封装所有的输入变量为单元数组返回 varargin,封装所有的输出变量为单元数组返回 varargout。

示例2

varargin 函数的使用,具体程序如下:

function [xmin, ymin]=testvar(varargin)

for k = 1:length(varargin)

x(k) = varargin{k}(1) %单元数组索引

y(k) = varargin{k}(2);

end

xmin =min(x);

ymin =max(y);

testvar 函数可以调用具有不同数量的输入变量,如下所示。

>> [a,b]=testvar([2 3],[1 5],[4 8],[6 5],[4 2],[2 3]); %函数共有6个输入

a=

1

b=

8

在函数执行过程中,varargin={[2 3],[1 5],[4 8],[6 5],[4 2],[2 3]},函数调用完毕 varargin 释放。

示例3

varargout 函数的使用,具体程序如下:

function [varargout] = testvar2(arrayin)

for k = 1:nargout

varargout{k} = arrayin(k,:); % Cell array assignment

end

testvar2 函数返回数组 arrayin 的每一行,如下所示。

>> a = [1 2; 3 4; 5 6; 7 8; 9 0];

>> [p1, p2, p3, p4, p5] = testvar2(a)

p1=

1 2

p2=

3 4

p3=

5 6

p4=

7 8

p5=

9 0

vargin 和 vargout 函数可以出现在输入输出变量列表的末尾,函数调用时必须指定需要的输入和输出变量,如下所示。

function [out1,out2] = example1(a,b,varargin)

function [i,j,varargout] = example2(x1,y1,x2,y2,flag)

向嵌套函数输入可变变量

1) varargin 和 varargout。

由于嵌套函数与主函数使用相同的函数工作区,因此,varargin 和 varargout 既可以表示嵌套函数的输入输出变量,也可以是主函数的输入输出变量,具体表示取决于程序中的变量声明。

如果嵌套函数在函数声明中包含 varargin 或 varargout,则在函数内部调用这两个变量时,变量内容为该函数的输入输出变量;如果嵌套函数声明中没有包含 varargin 或 varargout,而在该函数的上层函数声明中包含 varargin 或者 varargout,则当在该嵌套函数内部调用这两个变量时,变量内容为上层函数的输入输出变量。

示例4

varargin 和 varargout 的取值,具体程序如下:

function x = A(y, varargin) % Primary function A

B(nargin, y * rand(4))

function B(argsIn, z) % Nested function B

if argsIn >= 2

C(z, varargin{1}, 4.512, 1.729)

end

function C(varargin) % Nested function C

if nargin >= 2

x = varargin{1}

end

end % End nested function C

end % End nested function B

end % End nested function B

在函数 A 中,函数 C 嵌套在函数 B 中,函数 B 嵌套在函数 A 中,在函数 B 中调用 varargin{1} 表示主函数 A 的第二个变量(函数 A 的第一个参数为 y),而在函数 C 中的 varargin{1} 表示函数 B 传递给函数 C 的第一个参数,即 z。

函数 A 调用 nargin(B(nargin,y*rand(4))) 表示函数 A 的输入变量个数,在函数 C 中调用 nargin 表示函数 C 的输入变量个数。

2) nargin 和 nargout。

当在函数中调用 nargin 和 nargout 函数时,其值为该函数的输入或输出变量,而不需要进行声明。

示例5

nargin 和 nargout 的取值,具体程序如下。

function meters = convert2meters(miles, varargin)

% Converts MILES (plus optional FEET and INCHES input)

% values to METERS.

if nargin < 1 || nargin > 3

error('1 to 3 input arguments are required');

end

function feet = convert2Feet(argsIn)

% Nested function that converts miles to feet and adds in

% optional FEET argument.

feet = miles .* 5280;

if argsIn >= 2

feet = feet + varargin{1};

end

end % End nested function convert2Feet

function inches = convert2Inches(argsIn)

% Nested function that converts feet to inches and adds in

% optional INCHES argument.

inches = feet .* 12;

if argsIn == 3

inches = inches + varargin{2};

end

end % End nested function convert2Inches

feet = convert2Feet(nargin);

inches = convert2Inches(nargin);

meters = inches .* 2.54 ./ 100;

end % End primary function convert2meters

>> convert2meters(5)

ans =

8.0467e+003

>> convert2meters(5, 2000, 4.7)

ans =

8.6564e+003

参数函数 matlab,MATLAB的函数参数相关推荐

  1. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  2. MATLAB的size()函数的返回值是一个1*2的向量哦,即使参数是向量也是1*2的向量哦!

    MATLAB的size()函数的返回值是一个1*2的向量哦,即使参数是向量也是1*2的向量哦! 返回的向量第一个元素表示有多少行,第二个元素表示有多少列,如果size()的输入参数是一个向量,那么返回 ...

  3. matlab中 ne k,KFoldCV.m 查找径向基神经网络模型的网络参数的程序MATLAB函数'ne 联合开发网 - pudn.com...

    KFoldCV.m 所属分类:matlab例程 开发工具:matlab 文件大小:1KB 下载次数:1 上传日期:2020-01-12 22:24:33 上 传 者:Kingvis 说明:  查找径向 ...

  4. 将函数当做参数 matlab,Matlab中如何将(自定义)函数作为参数传递给另一个函数...

    假如我们编写了一个积分通用程序,想使它更具有通用性,那么可以把被积函数也作为一个参数.在c/c++中,可以使用函数指针来实现上边的功能,在matlab中如何实现呢?使用函数句柄--这时类似于函数指针的 ...

  5. 在MATLAB中采用M文件实现对Simulink中的S函数程序实现自动调参数

    在做研究的时候我们经常需要对模型的参数就行相应的选择,然而有没有觉得每次更改一个参数都需要运行一次仿真程序觉得很无聊呀,运行完程序还要看效果怎么样,然后再根据效果来调整参数,再次运行程序,如此反复. ...

  6. Matlab自学笔记四:调用函数基本方法、传递参数、函数工作区、命令语法、调用匿名函数

    1.调用函数的基本方法 题目:创建函数y=x²+x+1 首先,使用上一篇的创建函数文件的方法(推荐先看上一篇:Matlab创建函数文件.函数语法定义.匿名函数.多元函数.局部函数等知识串联理解),创建 ...

  7. matlab中的measure,Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义

    MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声. out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再 ...

  8. awgn函数 matlab measure 什么意思,Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义...

    MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声. out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再 ...

  9. 数学建模笔记(十一):统计模型(MATLAB计算,函数参数解释待补充)

    文章目录 一.概述 二.参数估计--区间估计 1.糖果称重(求总体均值 μ \mu μ的双侧置信区间) (一)根据公式计算结果 (二)直接使用 t t e s t ( ) ttest() ttest( ...

最新文章

  1. 张量解释——深度学习的数据结构
  2. SSL剥离工具sslstrip
  3. 打开chm文件不能显示内容的解决办法
  4. HTML5入门之样板和兼容IE浏览器篇
  5. MyEclipse 编写 ExtJS 卡死问题解决方法
  6. 7.4.8 数据压缩
  7. 思科收购网络安全管理厂商Pari Networks
  8. 两边双虚线是什么意思_锯齿车道、倒三角标志什么意思?以下5种交通标线你认识几个?...
  9. Mavan学习之pom聚合
  10. 算法设计 分析篇(摊销分析)
  11. Android 摄像头
  12. 2017华为软挑——最小费用最大流(MCMF)
  13. java图书管理系统(MySQL)
  14. Time Limit Exceeded的原因及避免方法
  15. 北漂人的独白,是否有所共鸣
  16. 字节跳动高工面试:java高级程序员面试宝典蔡羽豆瓣
  17. WPF --三维空间(一)(简介)
  18. Xposed模块APP代码混淆
  19. TcaplusDBX光与夜之恋 | 与众不同的真实恋爱
  20. 计算机用户名和密码在哪个文件夹,登陆邮箱、论坛等的帐号和密码存放在电脑中的哪个文件夹中?...

热门文章

  1. 点云入门笔记(三):PCL基础以及PCL学习指南
  2. hive一个字段包含另一个字段
  3. android银行卡绑定,华为huawei pay怎么绑定银行卡 绑卡方法教程
  4. label标签的作用
  5. 手机(wap)网页底部固定悬浮广告带轮播特效代码
  6. 2019年天猫商家如何通过积分运营来达到用户运营的效果?
  7. 算法工程师5——计算机视觉知识点概览
  8. 研究方向三选一选择FPGA/计算机视觉/故障检测
  9. 类脑计算机器人,机器人的类脑计算是什么?
  10. 社交APP经典死法18种,听野路子产品菜狗怎么说