h2.c

来自「《MATLAB实用指南》系列丛书DE源代码」· C语言 代码 · 共 32 行

C
32
字号
/////////////////////Mex头文件////////////////////////////////////////////
#include "mex.h"
#include "math.h"
////////////////////用户C程序 /////////////////////////////////////////////
void OutPut(FILE* fp1,int M,int N,double *rP,int ii)
{int i,j;
fprintf(fp1,"\n The %d Input  Data is:\n",ii);
for(i=0;i<M;i++)
{
	for(j=0;j<N;j++)fprintf(fp1,"  %7.2lf",rP[j*M+i]);
    fprintf(fp1,"\n");
}
}
////////////////// 接口程序mexFunction/////////////////////////////////////
void mexFunction(int nlhs,mxArray *plhs[],int nrhs, mxArray *prhs[])
{int i,M,N,ii,jj; 
 double *rP,*lP;
FILE *fp1;
if((fp1=fopen("OutPut2.txt","w"))==NULL){mexErrMsgTxt(" Can't open OutPutfile\n");}
nlhs=nrhs;
for(i=0;i<nrhs;i++){
rP=mxGetPr(prhs[i]);//////获取指向矩阵prhs[i]的指针	
M=mxGetM(prhs[i]); 
N=mxGetN(prhs[i]);///获取prhs[i]矩阵的行数M与列数N
OutPut(fp1,M,N,rP,i);/////////////////  调用C程序
plhs[i]=mxCreateDoubleMatrix(M,N,mxREAL); //地址赋初值
lP=mxGetPr(plhs[i]); //////获取指向矩阵plhs[i]的指针	
for(ii=0;ii<M;ii++)for(jj=0;jj<N;jj++)lP[jj*M+ii]=sqrt(rP[jj*M+ii]);//向plhs[i]赋值
}
fclose(fp1);
}
///////////////////结束////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?