C/C++与Matlab混合编程初探(二)

2015-07-20 18:07:10 · 作者: · 浏览: 16
创建一个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传来的变量时,一定要注意数据的存储顺序

?