文档

libsstruct

将MATLAB结构转换为C风格结构,以与共享库一起使用

句法

s = libsstruct(structType)
s = libsstruct(structType,mlStruct)

描述

s= libsstruct(结构类型创建无效的指向MATLAB®libsstruct目的s

例子

s= libsstruct(结构类型,,,,mlStruct创建初始化的指针mlStruct

例子

全部收缩

致电AddStructFields通过创建类型的变量来函数c_struct

加载shrlibsample图书馆Matlabroot\ extern \示例\ shrlib文件夹,其中包含c_struct类型。

如果〜libisloaded(“ shrlibsample”)addpath(fullfile(matlabroot,“外部”,,,,'例子',,,,'Shrlib'))载荷(“ shrlibsample”结尾

显示功能签名shrlibsample并在列表中搜索AddStructFields入口。

libfunctionsviewshrlibsample
double addStructFields(C_ -Struct)

输入参数是指向c_struct数据类型。

创建MATLAB结构,SM

SM.P1 = 476;sm.p2 = -299;sm.p3 = 1000;

构造libsstruct目的sc来自c_struct类型。

sc = libsstruct('c_struct',SM)

领域sc包含MATLAB结构的值SM

致电AddStructFields功能。

calllib(“ shrlibsample”,,,,“ AddStructFields”,SC)
ANS = 1177

要清理,首先清除libsstruct对象,然后卸载库。

清除scUnloadlibraryshrlibsample

输入参数

全部收缩

共享库中定义的C结构。

MATLAB结构用于初始化字段s

数据类型:结构

输出参数

全部收缩

指针,返回为MATLABlibsstruct目的。

限制

  • 与使用该库一起使用载荷功能。

  • 您只能使用libsstruct标量结构的功能。

  • 将MATLAB结构转换为libsstruct对象,结构必须遵守在结构参数要求

提示

  • 如果共享库中的函数具有结构参数,请使用libsstruct创建参数。这libsstruct函数创建了您传递给库中函数的C风格结构。您将在MATLAB中处理此结构,就像真正的MATLAB结构一样。

在R2006a之前引入

这个话题有帮助吗?