创建一个2维的Matlab变量,形参分别用于指定变量的行数、列数、元素类型(mxREAL表示实数,mxCOMPLEX表示复数)。mxGetData用于获得内存中数据块的首地址。
编译并测试Code 5中的代码,参见Code 6。
?
mex abfunc.cpp
c = [1 2;3 4;5 6];
d = [1 1;1 1;1 1];
[a, b] = abfunc(c, d);
Code 6, Code5的测试代码
Code 6的输出结果如下:
?
a =
2 3
4 5
6 7
b =
0 1
2 3
4 5
?
?
?
关于数据存储的说明
Matlab中的数据是按列存储的。例如,a=[1,2;3,4;5,6],a的数据在内存中的存储顺序是:1、3、5、2、4、6。在CC++中使用Matlab传来的变量时,一定要注意数据的存储顺序。
?