C++/java/python系列的语言,函数可以有默认值,通常类似如下的形式:

funtion_name (param1, param2=default_value, ...)

到了matlab下发现并不能这样写。那是不是说matlab中希望函数有默认参数,就一定要很麻烦地,使用nargin来辅助实现呢?比如:

% 第三个参数有默认值
function [result]=some_fun(param1, param2)
if (nargin<3)
param3 = 'default_param3_value';
end
...
end

上面这种写法缺点明显:如果有多个参数有默认值,那么nargin的判断语句太多了。

那就试试inputParser。比如:

function [result]=some_fun(varargin)
ip = inputParser; %接下来设定默认值,还可以指定是必须参数还是可选参数等。
ip.addParamValue('use_gpu', 1);
%其他还有 ip.addParameter(),ip.addRequired()等函数可用
...
%然后将输入的参数进行处理,如果有不同于默认值的那就覆盖掉
ip.parse(varargin{:});
result=ip.Results;
end

最新文章

  1. C#中,双屏/两屏/三屏/多屏跳转判断
  2. .a静态库构架合成
  3. &quot;this class is not key value coding-compliant for the key ...&quot;问题的解决
  4. POJ 2724 Purifying Machine (二分图匹配)
  5. 04_XML_03_XMLDTD约束与校验
  6. HDOJ(HDU) 1718 Rank(水题、、、)
  7. 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现
  8. ubuntu12.10下arm-linux-gcc交叉编译环境的搭建
  9. javascript作用域和闭包之我见
  10. 听说你开发.NET还在用VS,小哥哥给你推荐全平台的Rider
  11. django中常用的数据查询方法
  12. 本地windows下搭建git的本地服务器
  13. echarts研究
  14. cs231n笔记(二) 最优化方法
  15. CentOS7搭建OpenVPN
  16. redis集群,主从,持久化
  17. codevs 2821 天使之城
  18. scala编程第16章学习笔记(2)
  19. Python基础 - 系统进程调用
  20. Jmeter_RabbitMQ性能测试

热门文章

  1. ASP.NET Repeater 绑定 DropDownList Calendar 选择日期
  2. 2178 表达式运算Cuties
  3. .net混淆、反编译工具调查
  4. Div和Span标签显示与隐藏
  5. [py]shell着色
  6. Ros与Vrep平台搭建
  7. 关于base64编码的原理和实现
  8. BI的相关问题[转]
  9. 阅读DNA-2014年读书
  10. matlab 功率谱分析