如何才能使其输入/输出的参数个数不限

Matlab提供了vargin和vargout这样的手段来是用户可以编写参数个数可变的函数,包括输入参数个数可变vargin和输出参数可变vargout.

  • 输入参数个数可变的例子:

    function x=testvargin(varargin)
    x=[0 0];
    for k = 1:length(varargin)
       x(1) = x(1) + varargin{k}(1); % Cell array indexing
       x(2) = x(2) + varargin{k}(2);
    end;
          %%%%%%%%%%%% 文件 testvargin 结束
          %%%   以下是函数 testvargin 的调用以及结果
    >> x0 = testvargin([1 2], [3 4], [5 6], [7 8])
    x0 = 
       16   20
    %%%   说明 示例函数 testvargin 将所有输入的两个元素的
    %%%    数组中对应的元素相加,返回得到的结果

    %%%   Matlab 将所有输入的两个元素参数组合到CELL数组vargin中, 我们通过length(varargin)就可以知道传入的参数个数,通过varargin{k}就可以得到第k个传入的参数(每一个参数的类型可以任意,当类型不定是处理起来就有一定的困难,例中是同类型就可以按相同的方式处理所有的参数)



  • 输出参数个数可变的例子:

    function [varargout] = testvarout(arrayin)
    num = min(nargout,legnth(array));
    for k = 1:num
       varargout{k} = arrayin(k);   % Cell array assignment
    end
    if(num < nargout)
        varargout{k}=[];
    end
          %%%%%%%%%%%% 文件 testvargout 结束
          %%%   以下是函数 testvargout 的调用以及结果
    >> [p1, p2, p3, p4, p5] = testvargout([1 2 3 4])
    P1 = 
                    1
    P2 = 
                    2
    P3 = 
                    3
    P4 = 
                    4
    P5 = 
                     []

    %%%   说明 示例函数 testvargout 将输入数组中的元素
    %%%   输出到对应的输出变量中,若输出变量多于输入,对应为空。所有输出必须打包到vargout这样的一个CELL数组中,才能输出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值