主要内容

coder.getArgTypes

通过执行测试文件确定函数输入参数的类型

描述

例子

类型= coder.getArgTypes (test_fcnfcn的单元格数组编码器。类型由执行确定的对象test_fcn.这个函数test_fcn必须调用指定的MATLAB入口点吗®函数fcn.输入参数到fcn构造返回的类型。

例子

struct_of_types= coder.getArgTypes (test_fcn,{fcn_1,…,fcn_n})返回包含单元格数组的结构编码器。类型由执行确定的对象test_fcn.这个函数test_fcn必须调用指定的入口点函数吗fcn_1通过fcn_n.这些函数的输入参数构造返回的类型。返回的结构为每个函数包含一个字段。字段名与对应函数的名称相同。

例子

struct_of_types= coder.getArgTypes (test_fcnfcn“统一”,struct_flag即使只有一个入口点函数,也返回一个结构。房地产统一的定义输出数组类型是单元格数组结构(true)还是单元格数组结构(false)。

例子

全部折叠

获取函数的输入参数类型my_fun通过运行测试文件my_test,它调用my_fun.使用这些输入类型生成代码my_fun

在本地可写文件夹中,创建MATLAB函数my_fun并保存在文件中my_fun.m

函数Y = my_fun(u,v)% # codegenY = u+v;结束

创建测试函数my_test并保存在文件中my_test.m

函数Y = my_test a = single(10);B =单(20);Y = my_fun(a,b);结束

获取的输入类型my_fun,运行test函数。

types = code . getargtypes (“my_test”“my_fun”
类型= 1×2单元格数组{1×1编码器。{1×1编码器。PrimitiveType}

生成的MEX函数my_fun通过使用这些输入类型作为示例输入。

codegenmy_funarg游戏类型

在当前文件夹中,codegen生成一个MEX函数,my_fun_mex,它接受类型的输入

测试MEX功能。例如:

Y = my_fun_mex(single(10),single(20))

获取函数的输入参数类型my_fun1而且my_fun2通过运行测试文件my_test2,它调用my_fun1而且my_fun2.使用这些输入类型生成代码my_fun1而且my_fun2

在本地可写文件夹中,创建MATLAB函数my_fun1.保存在文件中my_fun1.m

函数Y = my_fun1(u)% # codegenY = u;

创建函数my_fun2.保存在文件中my_fun2.m

函数Y = my_fun2(u,v)% # codegenY = u + v;

创建测试函数。

函数[y1, y2] = my_test2 a = 10;B =单(20);Y1 = my_fun1(a);Y2 = my_fun2(a,b);结束

获取的输入类型my_fun1而且my_fun2,运行test函数。

types = code . getargtypes (“my_test2”,{“my_fun1”“my_fun2”})
my_fun1: {[1×1编码器。PrimitiveType]} my_fun2: {[1×1编码器。PrimitiveType [1×1编码器。]PrimitiveType]}

生成的MEX函数my_fun1而且my_fun2通过使用这些输入类型作为示例输入。

codegenmy_fun1arg游戏types.my_fun1my_fun2arg游戏types.my_fun2

在当前文件夹中,codegen生成一个MEX函数,my_fun1_mex,有两个入口,my_fun1而且my_fun2,它们接受类型的输入

测试MEX函数中的每个入口点。例如:

Y1 = my_fun1_mex(“my_fun1”,10) y2 = my_fun1_mex(“my_fun2”、10、20)

获取函数的输入参数类型my_fun通过运行测试文件my_test,它调用my_fun.使用这些输入类型生成代码my_fun

在本地可写文件夹中,创建MATLAB函数my_fun并保存在文件中my_fun.m

函数Y = my_fun(u,v)% # codegenY = u+v;结束

创建测试函数my_test并保存在文件中my_test.m

函数Y = my_test a = single(10);B =单(20);Y = my_fun(a,b);结束

获取的输入类型my_fun作为带字段的结构,运行测试函数。

types = code . getargtypes (“my_test”“my_fun”“统一”,真正的)
my_fun: {[1×1编码器。PrimitiveType [1×1编码器。]PrimitiveType]}

生成的MEX函数my_fun通过使用这些输入类型作为示例输入。

codegenmy_funarg游戏types.my_fun

在当前文件夹中,codegen生成一个MEX函数,my_fun_mex,它接受类型的输入

测试MEX功能。例如:

Y = my_fun_mex(single(10),single(20))

输入参数

全部折叠

要确定其输入类型的入口点MATLAB函数的名称或句柄。该函数不能为本地函数。它必须在可写文件夹中的MATLAB路径上。

例子:types = code . getargtypes ('my_test','my_fun');

例子:types = code . getargtypes (@my_test,@my_fun);

数据类型:字符|字符串|function_handle

要确定输入类型的入口点MATLAB函数的名称或句柄的逗号分隔列表。函数不能是局部函数。它们必须位于可写文件夹中的MATLAB路径上。入口点函数名必须唯一。

例子:类型= coder.getArgTypes (my_test,{‘my_fun1’,‘my_fun2});

例子:types = code . getargtypes (@my_test,{@my_fun1,@my_fun2});

数据类型:字符|字符串|function_handle

测试函数的名称或句柄或测试脚本的名称。测试函数或脚本必须在MATLAB路径下。test_fcn必须调用至少一个指定的入口点函数。这些函数的输入参数构造返回的类型。

例子:types = code . getargtypes ('my_test','my_fun');

数据类型:字符|字符串|function_handle

真正的 的单元格数组的结构编码器。类型由执行确定的对象test_fcn,即使只有一个入口点函数。
的单元格数组编码器。类型由执行确定的对象test_fcn

例子:coder.getArgTypes(“my_test”、“my_fun”、“统一”,真正的);

数据类型:逻辑

输出参数

全部折叠

单元格阵列编码器。类型由执行测试函数确定的对象。

的单元格数组编码器。类型方法确定的对象test_fcn函数。该结构为每个函数包含一个字段。字段名与对应函数的名称相同。

提示

  • coder.getArgTypes返回函数参数的输入类型,类似于自动定义输入类型进入应用程序。

  • 使用前coder.getArgTypes,在MATLAB中运行测试函数,验证其提供了预期的结果。

  • 验证测试函数使用适合您的运行时环境的输入数据类型调用指定的入口点函数。如果test函数没有调用指定的函数,coder.getArgTypes无法确定此函数的输入类型。

  • coder.getArgTypes可能无法为应用程序计算理想的类型。例如,您可能希望大小为无界。的coder.getArgTypes函数返回基于最大输入的边界。若要调整返回类型的大小,请使用coder.resize

  • 对于某些输入的组合,coder.getArgTypes不能产生有效的类型。例如,如果test函数用单输入调用入口点函数,然后用双输入调用它,coder.getArgTypes生成错误,因为没有一个类型可以表示两个调用。

  • 方法生成MATLAB函数的代码时,将返回的类型作为示例输入codegen函数使用arg游戏选择。

版本历史

在R2012a中引入