coder.getArgTypes

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

描述

例子

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

例子

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

例子

struct_of_types= coder.getArgTypes (test_fcn,fcn“统一”,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,运行测试函数。

类型= coder.getArgTypes (“my_test”,“my_fun”)
类型= 1×2单元阵列{1×1编码器。PrimitiveType} {1×1 coder.PrimitiveType}

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

codegenmy_funarg游戏类型

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

测试MEX函数。例如:

y = my_fun_mex(单(10)、单(20))

获取函数的输入参数类型my_fun1my_fun2通过运行测试文件my_test2,电话my_fun1my_fun2。使用这些输入类型来生成代码my_fun1my_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);日元= my_fun1(一个);y2 = my_fun2 (a, b);结束

获取的输入类型my_fun1my_fun2,运行测试函数。

类型= coder.getArgTypes (“my_test2”,{“my_fun1”,“my_fun2”})
类型=结构与字段:my_fun1:{[1×1编码器。原语类型]}my_fun2:{[1×1编码器。PrimitiveType] [1×1 coder.PrimitiveType]}

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

codegenmy_fun1arg游戏types.my_fun1my_fun2arg游戏types.my_fun2

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

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

日元= 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作为带有字段的结构,运行测试函数。

类型= coder.getArgTypes (“my_test”,“my_fun”,“统一”,真正的)
类型=结构与字段:my_fun:{[1×1编码器。PrimitiveType] [1×1 coder.PrimitiveType]}

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

codegenmy_funarg游戏types.my_fun

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

测试MEX函数。例如:

y = my_fun_mex(单(10)、单(20))

输入参数

全部折叠

要为其确定输入类型的入口点MATLAB函数的名称或句柄。函数不能是局部函数。它必须在MATLAB路径下的一个可写文件夹中。

例子:类型= coder.getArgTypes (“my_test”、“my_fun”);

例子:类型= coder.getArgTypes (@my_test @my_fun);

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

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

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

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

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

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

例子:类型= coder.getArgTypes (“my_test”、“my_fun”);

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

真正的 的单元格数组的结构coder.Type执行确定的对象test_fcn,即使只有一个入口点函数。
返回的单元格数组coder.Type执行确定的对象test_fcn

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

数据类型:逻辑

输出参数

全部折叠

单元阵列的coder.Type通过执行测试函数确定的对象。

包含单元数组的结构coder.Type对象来确定test_fcn函数。结构为每个函数包含一个字段。字段名与对应函数的名称相同。

提示

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

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

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

  • 对于一些输入的组合,coder.getArgTypes无法生成有效类型。例如,如果测试函数用单输入调用入口点函数,然后用双输入调用它,coder.getArgTypes生成一个错误,因为没有一种类型可以同时表示两个调用。

  • 在为MATLAB函数生成代码时,通过将返回的类型传递给codegen函数使用arg游戏选择。

介绍了R2012a