📄 ivech.c
字号:
/* Change this to reflect the apropriate header file */
// #include "c:\matlabr11\extern\include\mex.h"
// #include "c:\matlabr11\extern\include\mex.h"
#include "c:\matlab6p1\extern\include\mex.h"
#include <math.h>
/*
* ivech.c
* This is a helper function and is part of the UCSD_MVGARCH toolbox
* You can compile it and should work on any platform.
*
* Author: Kevin Sheppard
* kksheppard@ucsd.edu
* Revision: 2 Date: 12/31/2001
*/
void ivech(double *parameters, double *matrix,int m)
{
int i, j;
int count=0;
for (i=0;i<m;i++){
for (j=i;j<m;j++){
*(matrix+i*m+j)=*(parameters+count);
//*(matrix+i+j*m)=*(parameters+count);
count++;
}
}
}
/* The gateway routine */
void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *parameters, *matrix;
int mrows,ncols, outsize;
/* Check for proper number of arguments. */
if(nrhs!=1)
mexErrMsgTxt("One inputs required.");
if(nlhs!=1)
mexErrMsgTxt("One output required.");
/* Create a pointer to the input matrices . */
parameters = mxGetPr(prhs[0]);
/* Get the dimensions of the matrix input ht to make an output matrix. */
mrows = mxGetM(prhs[0]);
ncols = mxGetN(prhs[0]);
if(ncols!=1)
mexErrMsgTxt("Column vector required.");
outsize=(1 + (int)sqrt(1+8*mrows))/2 - 1;
/* Set the output pointer to the output matrix. */
plhs[0] = mxCreateDoubleMatrix(outsize , outsize, mxREAL);
/* Create a C pointer to a copy of the output matrix. */
matrix = mxGetPr(plhs[0]);
/* Call the C subroutine. */
ivech(parameters, matrix, outsize);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -