Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“在MATLAB函数中实现此结构”;inputParser";_Matlab_Function_Input Parameters - Fatal编程技术网

使用“在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
    ,则默认值为:
    x
    ,值为1

  • 在提到
    op
    及其种类后,他有权选择值。如果不提及
    op
    种类,就无法选择值


我不清楚你想要达到什么样的行为。如果“op”只能接受两个字符串“x”和“y”,则应跳过第三个输入参数,并应为所需的输入参数“op”添加输入验证。显示的第四个参数是可选的输入参数,其余的是名称-值对。@SomeGuy。我添加了更多信息。
op
是否需要作为输入参数?你不能自己输入
'x',12
'y',10
吗?通常,您应该尝试将输入组织为参数/值对。您是否可以添加更多关于这些表示内容的详细信息(即,您具体尝试使用它的目的)?@gnovice i在上面添加了更多信息。您是否需要使用该输入格式?您是否可以将
op
之后的参数指定为单元格数组,以便处理成对的输入?我在想这样的事情:
my_func(数据,'op',{'x',12})
用于设置值或
my_func(数据,'op',{'x'})用于使用默认值。