我想确保用户定义的MATLAB函数(包含在m文件中)的输入参数是某种类型.我知道MATLAB会自动将数据类型分配给变量(根据某些人的喜好和其他人的沮丧),但我想知道在MATLAB中是否存在"严格数据类型"的选项,或者某种类型,尤其是用于用户定义函数的输入参数.
我在这两个网页上找到了MATLAB的"基本类"(数据类型)的有用解释:
http://www.mathworks.com/help/matlab/matlab_prog/fundamental-matlab-classes.html http://www.mathworks.com/help/matlab/data-types_data-types.html
但是,我一直无法找到严格数据类型问题的答案,特别是对于函数输入参数.我认为这将是一个非常基本的问题,已经在很多地方得到了回答,但经过广泛的搜索,我还没有找到一个确定的答案.现在,我已经使用is[TYPE]()函数手动检查数据类型并显示错误消息,如果它不符合,虽然这看起来很草率,我希望我能让MATLAB为我强制执行它.
下面是一个函数示例,其中我想指定输入参数数据类型.它驻留在strict_data_type_test.mMATLAB当前路径中调用的文件中.在这个函数中,我想强制变量yes_or_no是MATLAB的logical数据类型.我知道我可以使用该islogical()函数手动检查,但我的问题是,是否有可能让MATLAB为我强制执行.我也知道任何非零double计算结果为true,零计算结果为false,但是我想强制用户发送一个logical以确保错误的参数不会被意外发送,例如.这是示例函数:
function y = strict_data_type_test( x, yes_or_no )
% manual data type check can go here, but manual check is not desirable
if (yes_or_no)
y = 2 .* x;
else
y = -5 .* x;
end
end
Run Code Online (Sandbox Code Playgroud)
在输入参数变量名称之前添加数据类型(与大多数编程语言一样)将数据类型文本视为另一个变量名称而不是数据类型标识符.从那看起来似乎无法在MATLAB中进行严格的数据输入,但也许你们中的许多人都知道一些我无法找到的有用的技巧,特性或语法.