📄 mex_mattrans.c
字号:
#include "matrix.h"
/*Function mex_mattrans*/
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
double *Ap, *Bp;
int mA,nA, m_total, n_elements, *ndims, n, *n1, i, j, k;
if (nrhs!=1) mexErrMsgTxt("Wrong number of input arguments!");
if (nlhs>1) mexErrMsgTxt("Too many output arguments!");
n_elements=mxGetNumberOfElements(prhs[0])+1;
n=mxGetNumberOfDimensions(prhs[0]);
ndims=mxGetDimensions(prhs[0]);
Ap=mxGetPr(prhs[0]);
n1=mxCalloc(n,sizeof(int));
mA=ndims[0]; nA=ndims[1]; n1[0]=nA; n1[1]=mA;
for (j=2; j<n; j++) n1[j]=ndims[j];
plhs[0]=mxCreateNumericArray(n, n1, mxDOUBLE_CLASS, mxREAL);
Bp=mxGetPr(plhs[0]);
m_total=nA*mA;
for (k=0; k<n_elements; k+=m_total)
for (i=0; i<mA; i++)
for (j=0; j<nA; j++) Bp[k+i*nA+j]=Ap[k+j*mA+i];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -