setTokenizer(...)
但是当我以这种方式使用它时:
function res = display_grid(root_dir, output_dir,varargin)
ip = inputParser;
ip.addRequired('root_dir', @isstr);
ip.addRequired('output_dir', @isstr);
ip.addOptional('width', 160 , @isscalar);
ip.addOptional('height', 120, @isscalar);
ip.addOptional('ext', 'jpg', @isstr);
ip.addOptional('num_x', 5, @isscalar);
ip.addOptional('num_y', 4, @isscalar);
ip.addOptional('interval', 5 , @isscalar);
ip.addOptional('int_pix_value', 128, @isscalar);
ip.addOptional('seq_id', '0', @isstr);
它总是会提示错误,如:
display_grid('./dataset', './inpection', 'seq_id', '10');
这是有线的,因为我在使用此功能时没有使用宽度。
答案 0 :(得分:2)
我认为您可能希望使用addParamValue
代替addOptional
。
使用inputParser
时,您需要参数,可选参数和参数值参数。首先是必需的参数。接下来是可选参数,您必须按顺序提供它们。参数值参数以任何顺序排在最后。
这里发生的事情是因为您已将所有参数指定为可选参数,因此尝试将值seq_id
用于宽度,并且验证失败{{ 1}}。将它们全部设置为isscalar
。