matlab函数重载功能的实现笔记
发布日期:2021-07-01 04:00:20
浏览次数:2
分类:技术文章
本文共 834 字,大约阅读时间需要 2 分钟。
说明
matlab不支持重载功能,但是我们可以通过某些方法去实现类似重载的功能。笔记
- 以下述代码为例,函数当中的
varargin
变量是元胞数组类型,调用函数testFun
时,输入的函数参数将自动转成元胞数组。
此处注意,要想实现重载功能,函数的输入参数必须是
varargin
,而调用函数时输入的参数,必须使用[]
括起来.
narginchk(m,n)
用来限制输入参数的数量范围,即至少输入m
个参数,最多输入n
个参数,不符合条件则会自动报错.
如果不用
narginchk(m,n)
,程序会自动执行完,出现其他谜一样的未知错误,建议还是使用比较好
- 对于输入变量数量的判断,matlab内部有一个自动存储函数中输入个数的
nargin
变量,使用它即可。
function [y] = testFun(varargin) narginchk(2,3) if nargin==2 a = varargin{ 1,1}; b = varargin{ 1,2}; c = zeros(1,5); elseif nargin==3 a = varargin{ 1,1}; b = varargin{ 1,2}; c = varargin{ 1,3}; end y = a + b + c;end
实例
测试函数:function y = testFun(varargin) if nargin==2 y=2; elseif nargin==3 y=3; endend
调用:
由于[1 1 1]
算一个参数,因此程序正常执行完,没有返回值 注意变量之间必须要用
,
隔开
要点
- 函数参数
varargin
- 输入变量数量
nargin
- 调用时要用
[]
- 限制输入变量的数量
narginchk(m,n)
转载地址:https://miracle.blog.csdn.net/article/details/104823357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月07日 07时30分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux shell脚本的字符串截取
2019-05-02
linux和windows下mysql密码怎样清空!
2019-05-02
mysql logs-slave-updates (A -> B -> C)
2019-05-02
关于Java中split方法对空字符串处理问题
2019-05-02
mysql JDBC URL参数解析
2019-05-02
数据库复习(4)
2019-05-02
C# TextBox输入密码显示星号(*)
2019-05-02
1小时点击量破千万!阿里巴巴首发:MySQL高级调优笔记!全是技术重点
2019-05-02
这个GItHub上的Java项目开源了 2021最全的Java架构面试复习指南
2019-05-02
Proftpd MySQL [Step by Step]
2019-05-02
EFI Shell 命令参考
2019-05-02
HP-UX oracle RAC 双机实践
2019-05-02
解决SHELL脚本中的export无法生效的问题【转】
2019-05-02
linux中的sh脚本语法【转】
2019-05-02
Linux 内核通用链表学习小结【转】
2019-05-02
区别数据结构中的堆栈与内存中的堆栈的个人总结【转】
2019-05-02
六、判断两个单向链表是否相交
2019-05-02
七、两个有序链表合并(递归方式)
2019-05-02