Matlab中的参数定义

Matlab中的参数定义

写在前面

Matlab是一种非类型化语言,大多数函数都不需要参数声明或验证。但是为了保证程序的通用性和按照预期工作,对参数进行验证是非常有必要的。

参数量验证

参数量验证是为了验证输入输出参数的数量

  • 所用到的函数
% 可变长度输入参数列表
varargin
% 函数输入参数数目
nargin
% 验证输入参数数目
narginchk
% 可变长度的输出参数列表
varargout
% 函数输出参数数目
nargout
% 验证输出参数数目
nargoutchk

实际使用

  • varargin可变长度输入参数列表,用在函数声明的最后一个参数,表示函数可接受任意长度参数输入,并且以1*N的元组形式存储。

  • varargin 是函数定义语句中的一个输入变量,允许函数接受任意数量的输入参量。使用小写字符指定 varargin。在任何显式声明的输入项后,附加 varargin 作为最后一个输入参量。

    在执行函数时,varargin 是一个 1×N 元胞数组,其中 N 是函数在显式声明的输入后收到的输入项数。如果该函数在显式声明的输入后未收到任何输入,则 varargin 是空元胞数组。

    % 将输入参数进行累加
    function sum = mySum_varargin(varargin)
        disp("输入参数总量:" + nargin)	% 输入参数的总量
        sum = 0;
        for i = 1 : length(varargin)
            sum = sum + varargin{
         i};	% 元组可通过{i}访问元素
        end
    end
    
    %% 调用
    mySum_varargin(1.2,2.5,pi)
    
  • nargin

    % nargin 在函数内部当作变量使用返回输入参数的数量
    function sum=mySum(a,b)
    	nargin % 这里 nargin = 2
        sum = a + b;
    end
    
    % nargin('mySum') 返回函数mySum输入参数的数量,注意这里是函数字符串
    % nargin() 若返回负数,则表示输入参数是可变参数,如-1:第一个参数是参数数, -3:第三个参数是可变参数
    nargin('mySum')
    
    
    % nargout 在函数内部
    
    
    
    
  • narginchk(minArgs,maxArgs)验证当前执行的函数调用中的输入参量数目。如果调用中指定的输入数目小于 minArgs 或大于 maxArgsnarginchk 将引发错误。如果输入数目在 minArgsmaxArgs 之间(包括二者),则 narginchk 不会执行任何操作。

    % 将输入参数进行累加
    function sum = mySum_varargin(varargin)
        disp("输入参数总量:" + nargin)	% 输入参数的总量
        narginchk(2,5); % 输入参数数量的小于2大于5
        sum = 0;
        for i = 1 : length(varargin)
            sum = sum + varargin{
         i};	% 元组可通过{i}访问元素
        end
    end
    
  • varargout 是函数定义语句中的一个输出变量,允许函数返回任意数量的输出参量。使用小写字符指定 varargout,将其作为最后一个输出参量附加在任何显式声明的输出后。在执行此函数时,varargout 是一个 1×N 元胞数组,其中 N 是显式声明的输出结果后请求的输出数量。在函数内部,varargout 是一个未初始化且未预分配的变量。

    func
  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值