主要内容

通过阵列示例

print2darray.功能

print2darray.功能在Shrlibsample.库显示具有三列的2-D阵列的值和可变的行数。这my2d.参数是一系列二维数组双倍的。这Len.参数是行数。

exported_function void print2darray(double my2d [] [3],int len){int Indxi,Indxj;for(Indxi = 0; Indxi 
            

将MATLAB阵列转换为C样式尺寸

此示例显示如何将通过存储在MATLAB阵列中的数据存储到C函数的C函数传递给逐行列的C函数。

加载包含的库print2darray.功能。

如果不是(libisloaded('shllibsample'))AddPath(FullFile(MatlaBroot,'extern''例子''shrlib'))LoadLibrary('shllibsample'的)结尾

使用4行和3列创建MATLAB数组。

m =重塑(1:12,4,3)
m =4×31 5 9 2 6 10 3 7 11 4 8 12

显示值。第一列是[1 4 7 10]而不是[1 2 3 4]。

calllib('shllibsample''print2darray',m,4)
1 2 3 4 5 6 7 8 9 10 11 12

翻倒M.获得所需的结果。

calllib('shllibsample''print2darray',m',4)
1 5 9 2 6 10 3 7 11 4 8 12

Multdoublearray.功能

Multdoublearray.功能在Shrlibsample.库将数组的每个元素乘以三个。该函数使用单个下标(线性索引)导航输入数组。

exported_function void multidoublearray(double * x,int size){/ *数组的每个元素3 * / int i;for(i = 0; i 
            

matlab.®功能签名是:

返回类型 姓名 争论
opoundptr. Multdoublearray. (DoublePtr,
INT32)

保留3-D Matlab阵列

此示例显示C函数如何更改MATLAB阵列的尺寸,以及如何恢复其形状。

加载库。

如果不是(libisloaded('shllibsample'))AddPath(FullFile(MatlaBroot,'extern''例子''shrlib'))LoadLibrary('shllibsample'的)结尾

创建一个2×5×2的输入阵列并显示其尺寸。

Vin = Reshape(1:20,2,5,2);vs = size(vin)
vs =1×32 5 2

称呼Multdoublearray.乘以每个元素。显示输出的尺寸。

Vout = calllib('shllibsample''multidoublearray',vin,20);尺寸(vout)
ANS =.1×22 10.

恢复原始形状。

Vout = Rehape(Vout,VS);尺寸(vout)
ANS =.1×32 5 2