八度 inputParser.addRequired 未定义

Octave inputParser.addRequired is undefined

我已经将我的 Octave 从版本 3.8.2 更新到 4.4.1,现在有一部分代码不能像以前那样工作,我什至不明白这行代码有什么用。

问题出现在函数的开头 获取年份 returns 0, 1 是否是闰年。

 22 p = inputParser;
 23 p = p.addRequired('Year',@(x) all(isnumeric(x)));
 24 p = p.parse(Year);

我得到的错误是:

error: value on right hand side of assignment is undefined
error: called from
    leapyear at line 23 column 3

那么为什么会有这个 inputParser?我怎样才能让它在新的 Octave 版本中工作?

很遗憾,inputParser 函数没有文档:

octave:23> help(inputParser)
error: help: invalid input

我无法猜测为什么该代码在 Octave 3.8 中有效,在线提供的最古老的 Octave 文档是针对 4.0 版的。

Octave 4.4 documentation 指定 inputParser.addRequired() 没有输出值。因此,通过删除 p = 更改第 23 行,使其显示为:

p.addRequired('Year',@(x) all(isnumeric(x)));

请注意 MATLAB's documentation for inputParser 说的是同一件事。