%[例子1]
% Matlab调用DLL,整形数组传参
v = [1,22,33;44,-56,67];
pv = libpointer('int16Ptr',v);
m = get(pv,'Value');
m(4) % 访问数组中第4个值
%[例子2]
% Matlab调用DLL,自定义结构体数组传参
% 自定义结构体如下:
% typedef struct
% {
%double x;
%double y;
%double z;
% }COOR_3DIM;
coor3.x = 0;coor3.y = 0;coor3.z = 0; % 建立结构体
sc = cell(1,3); % 构建1*3的数组
sc{1} = libstruct('COOR_3DIM', coor3);% 用libstruct函数构造dll中的结构体
sc{2} = libstruct('COOR_3DIM', coor3);
sc{3} = libstruct('COOR_3DIM', coor3);
% 初始化
sc{1}.x = 0;sc{1}.y = 0;sc{1}.z = 0;
sc{2}.x = 50;sc{2}.y = 0;sc{2}.z = 0;
sc{3}.x = 50;sc{3}.y = 50;sc{3}.z = 0;
psc = libpointer('COOR_3DIMPtr',sc);
n = get(psc,'Value')
n(3).y %最终目的:如何访问数组3中的y变量
% 不一定拘泥于上面的表达方式
% 就是说,自定义的结构体数组如何初始化,
c语言调用dll实例 结构体传参 Matlab调用Dll 对于自定义结构体数组如何传参? - 程序语言 - 小木虫 - 学术 科研 互动社区...