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

📄 innerprod.c

📁 纹理合成matlab源代码,非常好
💻 C
字号:
/* RES = innerProd(MAT);  Computes mat'*mat    Odelia Schwartz, 8/97.*/#define V4_COMPAT#include <matrix.h>  #include <stdio.h>#include <ctype.h>#include <math.h>#include <strings.h>#include <stdlib.h>void mexFunction(int nlhs,           /* Num return vals on lhs */                 Matrix *plhs[],    /* Matrices on lhs      */                 int nrhs,           /* Num args on rhs    */                 Matrix *prhs[]     /* Matrices on rhs */                 ){   register double *res, *mat, tmp;   register int len, wid, i, k, j, jlen, ilen, imat, jmat;   Matrix *arg;      /* get matrix input argument */   /* should be matrix in which num rows >= num columns */   arg=prhs[0];                        mat= mxGetPr(arg);   len = (int) mxGetM(arg);   wid = (int) mxGetN(arg);   if ( wid > len )     printf("innerProd: Warning: width %d is greater than length %d.\n",wid,len);    plhs[0] = (Matrix *) mxCreateFull(wid,wid,REAL);   if (plhs[0] == NULL)      mexErrMsgTxt(sprintf("Error allocating %dx%d result matrix",wid,wid));   res = mxGetPr(plhs[0]);   for(i=0, ilen=0; i<wid; i++, ilen+=len)     {      for(j=i, jlen=ilen; j<wid; j++, jlen+=len)         {   	    tmp = 0.0;            for(k=0, imat=ilen, jmat=jlen; k<len; k++, imat++, jmat++)	      tmp += mat[imat]*mat[jmat];	    res[i*wid+j] = tmp;            res[j*wid+i] = tmp;         }   }   return;}

⌨️ 快捷键说明

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