matlab函数重载功能的实现笔记
发布日期:2021-07-01 04:00:20
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月21日 02时02分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
QT知识点总结(一)
2019-05-02
Unix环境变量--文件操作
2019-05-02
Unix环境变量--进程管理
2019-05-02
Unix环境变量--线程基础
2019-05-02
Unix环境变量--缓冲区
2019-05-02
Unix环境变量--POSIX异步I/O
2019-05-02
UNIX环境变量--存储映射I/O
2019-05-02
tinyhttpd源码学习1
2019-05-02
Plus One
2019-05-02
Linux内核完全剖析0.12(一)
2019-05-02
Sum Root to Leaf Numbers
2019-05-02
Reverse Linked List II
2019-05-02
为什么 Redis 要比 Memcached 更火?
2019-05-02
涨姿势:为啥MySQL官方不推荐使用uuid或者雪花id作为主键?
2019-05-02
一个小小的签到功能,到底用MySQL还是Redis?
2019-05-02
36岁退休!阿里 P8 六年实现“财务自由”,裸辞环游世界!
2019-05-02
QQ号终于能修改了?
2019-05-02
1.3 万亿条数据查询,如何做到毫秒级响应?
2019-05-02
高赞回答:为什么高级程序员不必担心自己的技术过时?
2019-05-02
支持 Dubbo 接口文档生成的工具
2019-05-02