lib.pointer
对象这个例子展示了如何创建一个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