我有一个函数文件
my_function.m
,它使用函数参数验证:
function b = my_function(a)
arguments
a (1, 1) double {mustBeReal}
end
b = a + 1;
end
我在命名空间包中编写了一个 自定义验证函数(作为示例),因此其完全限定名称类似于
mypackage.foo.mustBeSomething
。
我希望能够立即导入名称
mustBeSomething
以在arguments
块中使用。
import mypackage.foo.mustBeSomething;
但是 MATLAB 不允许我将其放置在任何正常的地方:
function
关键字之前会导致 MATLAB 将 my_function
解释为局部函数function
之后但在 arguments
之前的行中会导致 MATLAB 抱怨参数块必须先出现arguments
关键字之后但在 a
行之前会导致 MATLAB 将 import
解释为参数名称我真的没有办法只使用
mustBeSomething
,而不是通过导入使用完全限定名称吗?
function b = my_function(a)
arguments
a (1, 1) double {mustBeReal, mypackage.foo.mustBeSomething}
end
b = a + 1;
end
来自函数参数验证文档:
变量和函数访问的限制
参数块存在于函数的工作区中。使用 import 命令添加到函数范围的任何包、类或函数都会添加到参数块的范围。
所以你可以在函数代码块中使用
import
来与参数块一起使用。
function b = my_function(a)
arguments
a (1, 1) double {mustBeReal, mustBeSomething}
end
import mypackage.foo.mustBeSomething
b = a + 1;
end