📄 mex_matp.c
字号:
#include "mat.h"
/*Function mex_matp*/
main(int argc, char **argv)
{
MATFile *fp1,*fp2;
int i,j,k, mA,nA, mB, nB, *ndims;
mxArray *pA, *pB, *pC;
double *A, *B, *C;
fp1=matOpen(argv[1],"r");
if (fp1 == NULL) {
printf("Error opening file %s\n",argv[1]);
return(1);
}
pA=matGetNextArray(fp1);
pB=matGetNextArray(fp1);
ndims=mxGetDimensions(pA); mA=ndims[0]; nA=ndims[1];
ndims=mxGetDimensions(pB); mB=ndims[0]; nB=ndims[1];
if (nA!=mB) {
printf("Matrices A and B not competible for multiplication\n");
return(1);
}
A=mxGetPr(pA); B=mxGetPr(pB);
pC=mxCreateDoubleMatrix(mA,nB,mxREAL);
C=mxGetPr(pC);
for (i=0; i<mA; i++){
for (j=0; j<nB; j++){
C[i*mA+j]=0;
for (k=0; k<nA; k++) C[i*mA+j]+=A[k*mA+i]*B[j*nA+k];
}
}
matClose(fp1);
fp2=matOpen(argv[2],"w");
mxSetName(pC, "C"); matPutArray(fp2,pC);
matClose(fp2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -