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 + -
显示快捷键?