主要内容

遍历lib.pointer对象

从lib中创建Cell Array。指针对象

这个例子展示了如何创建一个MATLAB®单元数组的字符向量,mlStringArray的输出getListOfStrings函数。

加载shrlibsample图书馆。

如果不是(libisloaded (“shrlibsample”)目录(fullfile (matlabroot,“外来的”“例子”“shrlib”) loadlibrary (“shrlibsample”结束

调用getListOfStrings函数创建字符向量数组。函数返回一个指向数组的指针。

ptr = calllib (“shrlibsample”“getListOfStrings”);类(ptr)
ans = ' lib.pointer '

创建索引变量来遍历数组。使用ptrindex函数和返回的数组指数为MATLAB阵列。

ptrindex = ptr;指数= 1;

创建字符向量的单元格数组mlStringArray.复制的输出getListOfStrings到单元格数组。

% read直到list的末尾(NULL)ischar(ptrindex.value{1}) mlStringArray{index} = ptrindex.value{1};%增加指针Ptrindex = Ptrindex + 1;%增量数组索引Index = Index + 1;结束

查看单元格数组的内容。

mlStringArray
mlStringArray =1 x4单元格{'String 1'} {'String Two'} {0x0 char} {'Last String '}

在结构数组上执行指针运算

这个例子展示了如何使用指针算法来访问一个结构的元素。本实例创建了一个MATLAB结构,基于c_struct定义的shrlibsample.h头文件。

负载的定义。

如果不是(libisloaded (“shrlibsample”)目录(fullfile (matlabroot,“外来的”“例子”“shrlib”) loadlibrary (“shrlibsample”结束

创建MATLAB结构。

s =结构(“p1”{1,2,3},“p2”{1.1, 2.2, 3.3},“p3”, {0});

创建指向该结构的指针。

sptr = libpointer (“c_struct”,年代);

读取第一个元素的值。

v1 = sptr。价值
v1 =结构体字段:P1: 1 p2: 1 p3: 0

通过自增指针读取下一个元素的值。

SPTR = SPTR + 1;v2 = sptr。价值
v2 =结构体字段:p2: p2: p3: 0