主要内容

通过数组的例子

print2darray函数

print2darray功能shrlibsample库显示三列的二维数组的值和变量的行数。的my2d参数是一个二维数组。的len参数的行数。

EXPORTED_FUNCTION空白print2darray(双my2d [] [3], int len) {int indxi indxj;(indxi = 0; indxi < len; + + indxi) {(indxj = 0; indxj < 3; + + indxj) {mexPrintf (“% 10 g”, my2d [indxi] [indxj]);}mexPrintf (“\ n”);}}

MATLAB数组转换为c风格的维度

这个例子展示了如何通过在MATLAB®columnwise数组来存储的数据一个C函数,假定row-by-column格式。

加载库包含print2darray函数。

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

创建一个MATLAB与4行3列数组。

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 (“shrlibsample”,“print2darray”米,4)
1 2 3 4 5 6 7 8 9 10 11 12

转置得到期望的结果。

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

multDoubleArray函数

multDoubleArray功能shrlibsample三个库复制数组的每个元素。函数使用一个下标(线性索引)导航输入数组。

EXPORTED_FUNCTION空白multDoubleArray(双* x, int大小){/ *多个数组的每个元素3 * / int我;(我= 0;<大小;我+ +)* x + + * = 3;}

MATLAB®函数签名:

返回类型 的名字 参数
doublePtr multDoubleArray (doublePtr
int32)

保持3 d MATLAB数组

这个例子显示了一个C函数改变一个MATLAB®数组的维度,以及如何恢复它的形状。

加载库。

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

创建一个2-by-5-by-2输入数组并显示它的维度。

vin =重塑(1:20,2、5、2);vs =大小(vin)
和=1×32 5 2

调用multDoubleArray把每一个元素。显示输出的尺寸。

输出电压= calllib (“shrlibsample”,“multDoubleArray”vin 20);大小(输出电压)
ans =1×22 10

恢复原来的形状。

输出电压=重塑(输出电压,vs);大小(输出电压)
ans =1×32 5 2