double *mxGetPr(const mxArray *pm);
使用mxGetPr可以從將pm指向的數據從matlab傳遞到c中
mxGetN()獲得數組的列
mxGetM()獲得數組的行
例如,mxArray *pm,pm指向matlab中的m*n維數組
則, mxGetN(pm)=n
mxGetM(pm)=m
但是在傳遞數組時需要注意matlab中與c中數組數據的存儲方向不同。
例如矩陣
A=
8 1
3 5
4 9
Matlab的存儲順序是8,3,4,1,5,9,也就是說先行後列。
c中的存儲數據爲8,1,3,5,4,9,也就是說先列後行。
如果數組A從matlab中傳遞到c中mxGetN(pm)=2 mxGetM(pm)=3
要訪問第i行第j列數據,在c中爲pm[mGetM(pm)*(j-1)+(i-1)]
pm++,訪問的位置也是按原數組的列向下移動。