功能:
我的MATLAB函数有一个输出和多个输入参数,其中大部分是可选的,即:
output=MyFunction(arg1,arg2,opt1,opt2,...,optN)
我想要做什么:
我想要只给函数传入arg1、arg2和最后一个可选的输入参数optN。我使用了波浪线运算符来实现:
output=MyFunction(str1,str2,~,~,...,true)
不期望的结果:
这将给出以下错误消息:
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
这个错误指向第一个波浪线后面的逗号,但是说实话我不知道该怎么处理。
问题识别:
- 我使用支持波浪线运算符的MATLAB 2013b版本。 - 根据MATLAB的文档,上述函数调用应该可以正常工作: “您可以忽略任何数量在参数列表中的函数输入。用逗号分隔连续的波浪线...” - 我猜有几种解决方法,例如使用''或[]作为输入,但我真的很想了解如何正确使用'~',因为实际上留下输入允许我在检查函数的输入参数时使用exist()。 如果您需要更多信息,请告诉我。
非常感谢!
varargin
不允许使用描述性变量名。我总是将varargin
的输入复制到具有描述性名称的变量中。不得不复制变量也不好(浪费一些内存),但考虑到限制,这是我认为最好的选择 :) - gire