48
A
回答
34
关于如何做到这一点,有几个不同的选项。最基本的是使用varargin
,然后使用nargin
,size
等来确定是否已将可选参数传递给该函数。
% Function that takes two arguments, X & Y, followed by a variable
% number of additional arguments
function varlist(X,Y,varargin)
fprintf('Total number of inputs = %d\n',nargin);
nVarargs = length(varargin);
fprintf('Inputs in varargin(%d):\n',nVarargs)
for k = 1:nVarargs
fprintf(' %d\n', varargin{k})
end
多一点优雅的寻找解决方法是使用inputParser
类来定义你的函数预期的所有参数,都必需和可选。 inputParser
还允许您对所有参数执行类型检查。
36
一个简单的方法是通过nargin(N个参数)。缺点是你必须确保你的参数列表和简单检查匹配。
值得记住的是,所有输入都是可选的,但如果函数调用未设置的变量,则函数将返回一个错误。以下示例为b和c设置默认值。如果a不存在,将退出。
function [ output_args ] = input_example(a, b, c)
if nargin < 1
error('input_example : a is a required input')
end
if nargin < 2
b = 20
end
if nargin < 3
c = 30
end
end
32
的要对此的一个好方法是不使用nargin
,但要检查是否有变数使用exist('opt', 'var')
设置。
例子:
function [a] = train(x, y, opt)
if (~exist('opt', 'var'))
opt = true;
end
end
看到这个答案对于做这种方式的优点:How to check whether an argument is supplied in function call?
[Matlab中的默认参数(的相关问题
- 1. 一个函数中Matlab可选的输入和输出参数
- 2. MATLAB ActiveX可选参数
- 3. Matlab函数上的可选输入参数
- 4. 模板函数中的可选参数
- 5. MVEL函数中的可选参数
- 6. 函数php中的可选参数?
- 7. Python 3.5函数中的可选参数
- 8. c#函数中的可选参数
- 9. Fortran函数中的可选参数
- 10. 类函数中的可选参数
- 11. swift可选参数函数
- 12. 可选参数函数
- 13. 如何强制Matlab/Octave覆盖函数使用可选参数
- 14. 关于Matlab中PCA函数的参数
- 15. Matlab函数中的偏移参数
- 16. 在matlab中的函数参数
- 17. Matlab函数参数传递
- 18. MATLAB函数矩阵参数
- 19. MATLAB函数和参数
- 20. MATLAB函数输入参数
- 21. 函数中的必需参数和可选参数
- 22. 一组函数的可选参数 - python
- 23. Windsor可选的构造函数参数
- 24. VBA函数 - 参数是不可选的
- 25. 带可选参数的TypeScript lambda函数
- 26. 处理可选的函数参数
- 27. 带可选参数的函数
- 28. 在Matlab中传递函数参数
- 29. 在MATLAB中记录函数参数
- 30. 如何使函数中的参考参数为可选(可选缓冲区)
可能重复http://stackoverflow.com/questions/795823/默认参数在matlab中),[Matlab的等效Python的“无”](http://stackoverflow.com/questions/1737523/the-matlab-equivalent-of-pythons-none),[如何处理在MATLAB中函数参数的名称/值对](http://stackoverflow.com/questions/2775263/how-to-deal-with-name-value-pairs-of-function-arguments-in-matlab) – Amro
好的讨论这个h去http://blogs.mathworks.com/pick/2010/04/02/setting-default-values/和这里http://blogs.mathworks.com/loren/2009/05/05/nice-way-to -set-功能的默认值/ –