matlab - 在 MATLAB 中验证输入的最佳实践

标签 matlab validation

在 MATLAB 函数中验证输入时,何时使用 inputParser 比使用 assert 更好。或者还有其他更好的工具可用吗?

最佳答案

我个人发现使用 inputParser 过于复杂。对于 Matlab,总是有 3 件事要检查 - 存在、类型和范围/值。有时您必须分配默认值。这是一些示例代码,非常典型的我的错误检查:dayofWeek 是参数,函数中的第 3 个。 (添加了额外的注释。)此代码的大部分早于 Matlab 中 assert() 的存在。我在以后的代码中使用断言,而不是 if ... error() 结构。

%Presence
if nargin < 3 || isempty(dayOfWeek);
    dayOfWeek = '';
end

%Type
if ~ischar(dayOfWeek);
    error(MsgId.ARGUMENT_E, 'dayOfWeek must be a char array.');
end

%Range
days = { 'Fri' 'Sat' 'Sun' 'Mon' 'Tue' 'Wed' 'Thu' };

%A utility function I wrote that checks the value against the first arg, 
%and in this case, assigns the first element if argument is empty, or bad.
dayOfWeek = StringUtil.checkEnum(days, dayOfWeek, 'assign');

%if I'm this far, I know I have a good, valid value for dayOfWeek

关于matlab - 在 MATLAB 中验证输入的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7514374/

相关文章:

matlab - 如何将函数句柄验证为输入参数?

javascript - 将可观察日期与 knockout 和 jQuery 验证进行比较

ruby-on-rails - 验证包含特定字符串的 Rails

javascript - 如何检测数据注释验证是否不成功?

javascript - Recaptcha.reload() 将我的表单焦点重置为验证码。需要禁用

javascript - JavaScript 中的电子邮件验证

计算两幅图像水平和垂直偏移量的matlab代码

matlab - 从单元格到多个矩阵

python - 如何在 Mac 上从 Python 虚拟环境调用 MATLAB 库

function - 扩展 MATLAB 函数名称的最大长度