【Matlab】函数输入个数不定怎么办?

在这里插入图片描述

1.Introduction

有时调用Matlab官方函数时,发现一些函数输入参数的数量可多可少,可长可短,可大可小,咳咳。。

比如常见的 xlsread 函数,可以直接读 Excel 文件,也可以指定读取 Excel 的范围,那么这种功能是怎么实现的呢?

在这里插入图片描述

2.Materials and methods

首先,我们打开 xlsread 函数,看看他内部是怎么写的,如下:

在这里插入图片描述

可以看到,这个函数封装时,默认有5个输入,那么他是怎么实现1个输入也不报错的呢?我们继续往下看他的代码,不过翻了几页发现都是注释,墙裂建议大家多写注释,多写标准化注释,这样即使几个月后再想调用这个函数,也会感觉了如指掌~

在这里插入图片描述

通过上面的代码,可以看到,其中有一个很重要的变量就是 nargin ,他反应了 变量的输入个数。了解这个之后,我们就可以通过 nargin 来执行一系列逻辑操作。下面通过 “三个和尚” 的例子,展示下输入变量个数不定的操作:

function [outputMonks,outputString] = threeMonks(monk1,monk2,monk3)

switch nargin
    % If the number of function input arguments(data) is 1.
    case 1
        outputMonks = monk1;
        outputString = '一个和尚有水喝';
    % If the number of function input arguments(data) is 2.
    case 2
        outputMonks = [monk1,monk2];
        outputString = '两个和尚抬水喝';
    % If the number of function input arguments(data) is 3.
    case 3
        outputMonks = [monk1,monk2,monk3];
        outputString = '三个和尚没水喝';
    % Generate a warning dialog for other input.
    otherwise
        msgbox('程序仅支持3个以下的和尚', ...  
               'Warning','warn');
end


end

3. Results and discussion

上面我们构建了一个默认三输入的函数,通过 swith 语句判断,当输入个数不同时,会输出不同的字符串。下面看看效果:

在这里插入图片描述
可以看到,由于在 swich 的分支里,所有输入参数都有调用,所以当输入1个或者2个变量时,函数也不会报错。当函数没有输入时,我们设置了一个警告框来提示用户。而当输入个数超过初始预留个数后,便会报错。所以这样的话,便无法实现未知变量个数的输入问题,期待有更好的方法实现~

4. Conclusion

Matlab 真好用, 基本能想到的函数官方都给封装好了。前段时间写代码时,学会了很多小技巧,准备攒着写博客,结果发现过了一礼拜,忘得都差不多了,哈哈哈,这几天应该会高产了~

猜你喜欢:👇🏻
【Matlab】如何自定义无输入和无输出的函数?
【Matlab】判断是否为空?是否为NaN?
【Python】函数默认参数怎么改变?

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值