⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comp_cantight_fac.c

📁 Matlab时频分析工具箱,希望能对大家有所帮助啊
💻 C
字号:
#include "mex.h"#include "config.h"#include "../src/ltfat_blas.c"#include "../src/ltfat_lapack.c"#include "../src/cantight_fac.c"#include "../src/gcd.c"/* Calling convention: *  comp_cantight_fac(gf,L,a,M); */void mexFunction( int nlhs, mxArray *plhs[], 		  int nrhs, const mxArray *prhs[] )     {    int L, R, a, M, N, c, d, p, q,h_a,h_m;   double *gf_combined, *gtightf_combined;   double *gf_r,*gf_i,*gtightf_r,*gtightf_i;      int ii;      /* Get matrix dimensions.*/      L=(int)mxGetScalar(prhs[1]);   a=(int)mxGetScalar(prhs[2]);   M=(int)mxGetScalar(prhs[3]);   R = mxGetM(prhs[0])*mxGetN(prhs[0])/L;      N=L/a;      c=gcd(a, M,&h_a, &h_m);   p=a/c;   q=M/c;   d=N/q;          /* Create temporary matrices to convert to correct complex layout. */   gf_combined     = mxCalloc(L*R,2*sizeof(double));   gtightf_combined = mxCalloc(L*R,2*sizeof(double));      /* Copy the data. */     gf_r=mxGetPr(prhs[0]);   for (ii=0;ii<L*R; ii++)   {      gf_combined[2*ii]=gf_r[ii];   }      if (mxIsComplex(prhs[0]))   {      gf_i=mxGetPi(prhs[0]);      for (ii=0;ii<L*R; ii++)      {	 gf_combined[2*ii+1]=gf_i[ii];      }   }   cantight_fac((ltfat_complex*)gf_combined,L,R,a,M,	       (ltfat_complex*)gtightf_combined);     plhs[0] = mxCreateDoubleMatrix(p*q*R, c*d, mxCOMPLEX);      gtightf_r=mxGetPr(plhs[0]);   gtightf_i=mxGetPi(plhs[0]);      for (ii=0;ii<L*R; ii++)   {      gtightf_r[ii]=gtightf_combined[2*ii];      gtightf_i[ii]=gtightf_combined[2*ii+1];   }      mxFree(gf_combined);   mxFree(gtightf_combined);   return;  }

⌨️ 快捷键说明

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