matlab中input输入多个数_这6个命令助你玩转matlab自定义函数

b67a1d8372d68a6f1b51daa6716130ad.png

函数对于matlab的重要性这里就不在赘述了( 你了解matlab局部函数吗?)。matlab自带的函数虽包罗万象、但并不可能揽括一切,在实际编程过程中往往还需要编程者根据实际问题编写适合解决当下问题的函数,这也就是所谓的 自定义函数。对于函数来说,几个参数指标是不可忽视的,包括函数的 输入接口输出接口输入参数及其个数输出参数及其个数 ,我们希望通过输入某些参数经过自定义函数的处理来获取我们想要的数据结果。为了方便大家更深刻地理解函数的概念,这里做一个形象的比喻,把面包房看作是函数3d669e92a284943e2b104c0a03527447.png,那输入参数就有面粉、酵母、鸡蛋、水等5fd506ba9c41c57341bad08c6c578dac.png,而输出参数就是香喷喷的面包569097e61040b72d175c5ab1a732f3f3.png,只要输入面粉、酵母、鸡蛋、水等,经过面包房加工处理,就能得到香喷喷的面包。这相当于 多个输入一个输出 ,函数还可以是 一个输入多个输出多个输入多个输出零个输入零个输出零个输入一个或多个输出 ,说白了就是函数既可有输入也可无输入,既可有输出也可无输出。 那么问题来了?既然函数的参数这般多变,要怎么定义才能尽可能做到万花丛中一枝独秀呢8ff540f582bc6751d17c5e5f1ec059bb.png?即函数本身具备 自适应输入输出参数个数 的功能。 接下来就一起来揭开6个小矮人的神秘面纱吧dd65197fd16c96e432505373c2930258.png! 为了能让更加自由地自定义函数,matlab提供6有关自定义函数输入输出参数检查的命令,分别是: vararginvarargoutnarginnargoutnarginchknargoutchk ,对应函数功能见下表:
函数名称函数功能
varargin可变长度输入参数列表,传递函数输入参数
varargout可变长度输出参数列表,传递函数输出参数
nargin获取函数输入参数数目
nargout获取函数输出参数数目
narginchk验证输入参数数目
nargoutchk验证输出参数数目
肿么样?这个六个小矮人个个身怀绝技吧,不亚于金庸先生的桃谷六仙呐21bc31737ca2072940165874125b2740.png。那它们的技能要怎样才能施展呢?别着急,让小编先喝口水吧。 1秒,2秒,3秒,。。。。。。人呢? 好了,喝完了~~~真舒服~~~继续吧!
先来说道输入三公子de(vararginnarginnarginchk)吧: varargin我很容易满足的,随便给个位置啰! 示例:函数fun(x,y, varargin ),小蓝人就是我,你们装不下的全给我! nargin小蓝人 知多少,快把我来问569097e61040b72d175c5ab1a732f3f3.png示例: nargin( 小蓝人 的数目 在我肚子里面呢,你倒是来取呀,等啥呢); nargin( fun ),fun一点儿都不好玩,不玩了7d8946ca2313c30e54ae3a691d581a2e.pngnarginchk哎! 哎! 哎! 楼上那两位不要太矫情了,检查官来了,小心哦 36fc09cd7b56ce92f960ecbd4ec47b3e.png 示例:narginchk( minArgs , maxArgs ) minArgs比我小的不让过,除非。 maxArgs比我大的也不让过,除非。。。。。。 小编:非你个大头鬼呀,赶紧让我过去写推文吧!
再看输出三公子(varargoutnargoutnargoutchk)吧: varargout楼上三位话真多,没有干货ded2e322063e65c7022f9afa8b1871f6.png,还是看我的吧!
function [varargout] = meanSumStd(x)    % 感谢关注matlab爱好者    % 返回平均值    varargout{1} = mean(x);    % 返回求和值    varargout{2} = sum(x);     % 返回标准差    varargout{3} = std(x);end
nargout立正! 稍息! 注意保持队形!
function [avg,varargout] = meanSumStd(x)% 感谢关注matlab爱好者% 返回平均值varargout = cell(nargout,1);avg = mean(x);for k = 1:nargout-1    switch k        case 1            % 返回求和            varargout{k} = sum(x);        case 2            % 返回标准差            varargout{k} = std(x);    endendend

nargoutchk:matlab爱好者的关注者们,大家好,我是out检查官请出示您的关注通行证!不然的话。

示例:nargoutchk(minArgs,maxArgs),

minArgs比我大的都比小编

maxArgs比我小的都比小编

小编:好吧,我承认!

function [avg,varargout] = meanSumStdVar(x)minArgs=2;  maxArgs=4;nargoutchk(minArgs,maxArgs)varargout = cell(nargout,1);avg = mean(x);for k = 1:nargout-1    switch k        case 1            % 求和            varargout{k} = sum(x);        case 2            % 计算标准差            varargout{k} = std(x);        case 3            % 计算方差            varargout{k} = var(x);    endendend

a3e7e39c5c25890540d37ea67ec06ca7.png

小编: 集合! 集合! 集合了! ~~~立正! 报数! varargin :  1 —— 我是传递输入参数的! varargout:  2 —— 我是传递输出参数的! nargin:  3 —— 我是点输入参数个数的! nargout :  4 —— 我是点输出参数个数的!

narginchk: 5 —— 检查输入参数个数的!

nargoutchk:  6 ——  我是检查输出参数个数的! 小编: 好! 全体都有! 立正! 稍息! 解散! 闲言碎语扯了这么多,大家都了解这六个小矮人的用法了吗?不妨赶紧打开matlab试试这些函数吧,合理组合利用这6个函数,你编写的函数必将健步如飞!如果大家对这6个函数使用有任何疑问,欢迎给小编留言! 感谢您的阅读bc0ccc35ba85008c3666771f84766525.png

参考资料:

[1] https://www.mathworks.com/help/matlab/ref/varargout.html [2] https://www.mathworks.com/help/matlab/ref/varargin.html [3] https://www.mathworks.com/help/matlab/ref/nargin.html [4] https://www.mathworks.com/help/matlab/ref/nargout.html [5] https://www.mathworks.com/help/matlab/ref/narginchk.html [6] https://www.mathworks.com/help/matlab/ref/nargoutchk.html

封面图片:由 Comfreak在Pixabay上发布

往期回顾>>>

matlab版的origin呼之欲出,快来领取吧!

酥脆可口的萝莉音来了~~~

PlotPub!一款让你欲罢不能的科研绘图工具箱

对matlab来说,“is”不仅仅是个英文单词!

代码共享

欢迎各位小伙伴加入原创代码共享QQ群,把您的原创代码与他人分享、同时也学习他人的优秀代码!在公众号中回复“共享”或“原创”即可获取加入方式哦!

3d0030a530c66130fb0d60eb5d4279e0.pnge83abe34339864e9e8694c139723db47.pngbdfaeea5fa58e5531eacfcd7009b95d4.png9d3aedb5595bfe9a0f683465f77c8f21.giff232a8e3f97973654242adf1091b80ef.png在看 点这里370b3df63f36f1346d888fdadd48bd4f.gif9d3aedb5595bfe9a0f683465f77c8f21.gif