主要内容

迭代阵列

从lib.pointer对象创建单元格数组

此示例显示了如何创建MATLAB®单元格数组的字符向量,MLStringArray.,来自输出getListofstrings.功能。

加载shrlibsample.图书馆。

如果不是(libisloaded('shllibsample'))AddPath(FullFile(MatlaBroot,'extern'“例子”'shrlib'))LoadLibrary('shllibsample'结束

打电话给getListofstrings.函数创建字符向量数组。该函数返回指向数组的指针。

ptr = calllib('shllibsample''getlistofstrings');班级(PTR)
ans ='lib.pointer'

创建索引变量以迭代阵列。使用PtrIndex.对于函数返回的数组和索引对于matlab阵列。

Ptrindex = PTR;索引= 1;

创建字符向量的单元格数组MLStringArray.。复制输出getListofstrings.到小区阵列。

%读取直到列表结尾(null)irchar(ptrindex.value {1})mlstringArray {index} = ptrindex.value {1};%增量指针ptrindex = ptrindex + 1;%递增数组索引索引=索引+ 1;结束

查看单元格数组的内容。

MLStringArray.
mlstringarray =1x4细胞{'String 1'} {'String 2'} {0x0 char} {'last string'}

在结构阵列上执行指针算术

此示例显示如何使用指针算法访问结构的元素。该示例创建了一个Matlab结构,基于c_struct.定义在Shrlibsample.h.标题文件。

加载定义。

如果不是(libisloaded('shllibsample'))AddPath(FullFile(MatlaBroot,'extern'“例子”'shrlib'))LoadLibrary('shllibsample'结束

创建MATLAB结构。

s = struct('p1',{1,2,3},'p2',{1.1,2.2,3.3},'p3',{0});

创建指向结构的指针。

sptr = libpointer('c_struct',s);

读取第一个元素的值。

v1 = sptr.value.
v1 =结构与字段:P1:1 P2:1 P3:0

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

SPTR = SPTR + 1;v2 = sptr.value.
v2 =结构与字段:P1:2 P2:2 P3:0