splog.c

来自「wekaUT是 university texas austin 开发的基于wek」· C语言 代码 · 共 50 行

C
50
字号
/*  splog.c  Written by Daniel Lee, 2000  See http://journalclub.mit.edu/jclub/home, under Computational  Neuroscience    y = splog(x)    Performs matrix element log: y=log(x), but evaluated only at the  sparse locations.*/#include "mex.h"#include <string.h>#include <math.h>#define Y (plhs[0])#define X (prhs[0])void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){  int m, n, nzmax, nnz;  int i;  double *xpr, *ypr;  if (nrhs != 1)    mexErrMsgTxt("One input arguments required.");  if (!mxIsSparse(X))    mexErrMsgTxt("Input argument must be sparse.");  m = mxGetM(X);  n = mxGetN(X);  nzmax = mxGetNzmax(X);  nnz = *(mxGetJc(X)+n);  xpr = mxGetPr(X);  if ((Y = mxCreateSparse(m,n,nzmax,mxREAL)) == NULL)    mexErrMsgTxt("Could not allocate sparse matrix.");  ypr = mxGetPr(Y);  memcpy(mxGetIr(Y), mxGetIr(X), nnz*sizeof(int));  memcpy(mxGetJc(Y), mxGetJc(X), (n+1)*sizeof(int));  for (i=0; i<nnz; i++)    ypr[i] = log(xpr[i]);}

⌨️ 快捷键说明

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