当你通过MATLAB时®构造为外部库函数:
每个MATLAB字段名必须与库结构定义中的字段名匹配。字段名区分大小写。
MATLAB结构不能包含不在库结构定义中的字段。
如果MATLAB结构包含的字段少于库结构中定义的字段,则MATLAB将未定义字段设为零。
您不需要匹配数字字段的数据类型。的calllib
函数将转换为正确的数字类型。
要确定结构字段的名称和数据类型,您可以:
请参阅库文档。
查看库头文件中的结构定义。
使用libstruct
函数。
MATLAB自动将结构转换为该结构类型的库定义。在大多数情况下,例如处理小型结构时,这是可行的。
但是,在处理传递大型结构的重复调用时,在调用外部函数之前,要手动转换结构。只需在开始时转换一次结构数据,而不是在每次函数调用时转换一次,就可以节省处理时间。如果转换结构的字段占用的空间小于原始MATLAB结构,还可以节省内存。
要手动转换,请调用libstruct
函数创建libstruct对象.虽然它是一个对象,但它的行为类似于MATLAB结构。对象的字段派生自外部指定的结构类型。