使用“在MATLAB函数中实现此结构”;inputParser";
假设我有一个函数,它有一个必需的输入(使用“在MATLAB函数中实现此结构”;inputParser";,matlab,function,input-parameters,Matlab,Function,Input Parameters,假设我有一个函数,它有一个必需的输入(data)和一个可选的输入(op)。op可以接受以下字符串:x和y。x和y的默认值(如果用户没有为此插入值)是1和2。但用户可以在选择op后插入此值。如您所见,该值与op相关;因此,如果我们添加op选项,我们应该有它的种类(x或y),但是第二个值是可选的(12或任何其他值-我想在将来为其设置一个规则。例如,如果选择了x,我只能为该值选择正数)。例如: my_func(data, 'op', 'x'); % the value of x in my code
data
)和一个可选的输入(op
)。op
可以接受以下字符串:x
和y
。x和y的默认值(如果用户没有为此插入值)是1
和2
。但用户可以在选择op
后插入此值。如您所见,该值与op
相关;因此,如果我们添加op
选项,我们应该有它的种类(x
或y
),但是第二个值是可选的(12
或任何其他值-我想在将来为其设置一个规则。例如,如果选择了x
,我只能为该值选择正数)。例如:
my_func(data, 'op', 'x'); % the value of x in my code is 1.
my_func(data, 'op', 'x', 12); % the value of x in my code is 12.
my_func(data, 'op', 'y', 10); % the value of x in my code is 11.
my_func(data, 'op', 'x', 12, 'another_param', 0); % the value of x in my code is 12 (change the position of 'op')
总而言之,此参数可以选择两个值。第一个是其种类,第二个(可选)是与其种类相关的值。如何使用inputParser
在MATLAB中实现此行为
有关参数的详细信息:
可以接受两种类型:op
或x
y
- 如果用户选择了
,他可以为此选择相关值(任何值)(在x
之后)x
- 如果用户选择了
,他可以为其选择相关值(仅正值)(在y
之后)y
- 如果用户未提及
的第二个参数,则默认值为x
(为1
选项选择op
)x
- 如果用户未提及
的第二个参数,则默认值为y
(为2
选项选择op
)y
- 如果用户未提及
,则默认值为:op
,值为1x
- 在提到
及其种类后,他有权选择值。如果不提及op
种类,就无法选择值op
我不清楚你想要达到什么样的行为。如果“op”只能接受两个字符串“x”和“y”,则应跳过第三个输入参数,并应为所需的输入参数“op”添加输入验证。显示的第四个参数是可选的输入参数,其余的是名称-值对。@SomeGuy。我添加了更多信息。
op
是否需要作为输入参数?你不能自己输入'x',12
或'y',10
吗?通常,您应该尝试将输入组织为参数/值对。您是否可以添加更多关于这些表示内容的详细信息(即,您具体尝试使用它的目的)?@gnovice i在上面添加了更多信息。您是否需要使用该输入格式?您是否可以将op
之后的参数指定为单元格数组,以便处理成对的输入?我在想这样的事情:my_func(数据,'op',{'x',12})
用于设置值或my_func(数据,'op',{'x'})代码>用于使用默认值。