matlab编程函数解决输入输出参数可变

在用matlab编程时,有几次遇到输入的参数过多过长和参数变化的情况,所使用的方法(暂定为方法1),在网上搜索看到方法2,现均将其记录,希望能有所帮助。
方法1:

a.a1 = 1; a.a2 = 2;
function [b] = multiple(a)
    a1 = a.a1; a2 = a.a2;
    b = a1*a2;
end

方法1采用的是struct变量类型进行参数传输,将所有参数表示进入结构体,解决函数输入参数过多过长等缺点,同时结构体参数对于全局静态变量也很有效。

方法2:

function varargout = multiple(varargin)
if nargin == 2
    a1 = varargin{1};
    a2 = varargin{2};

    varargout{1} = a1*3;
    varargout{2} = a2*3;

elseif nargin == 3
    a1 = varargin{1};
    a2 = varargin{2};
    a3 = varargin{3};

    varargout{1} = a1*3;
    varargout{2} = a2*3;
    varargout{3} = a3*3;
end
end

方法2采用元胞数组记录输入输出变量,真正实现输入输出变量可变。需要注意的是 varargin 和varargout,以及统计输入参数个数的函数nargin,统计输出参数个数的nargout

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值