rvarray.c
来自「这是一个MATLAB与C直接如何进行相互转换的技术资料」· C语言 代码 · 共 59 行
C
59 行
#include "mex.h"
int revarray(double*, int) ;
/*
* timestwo.c - example found in API guide
*
* Computational function that takes a scalar and doubles it.
*
* This is a MEX-file for MATLAB.
* Copyright (c) 1984-2000 The MathWorks, Inc.
*/
/* $ Revision: 1.8 $ */
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
double *input,*status;
int size,ncols;
/* Check for proper number of arguments. */
if(nrhs != 1) {
mexErrMsgTxt("One input required.");
} else if(nlhs > 1) {
mexErrMsgTxt("Too many output arguments");
}
/* The input must be a noncomplex scalar double.*/
size = mxGetM(prhs[0]);
ncols = mxGetN(prhs[0]);
/* Create matrix for the return argument. */
plhs[0] = mxCreateDoubleMatrix(1,1, mxREAL);
/* Assign pointers to each input and output. */
input = mxGetPr(prhs[0]);
status = mxGetPr(plhs[0]);
if(reverse(input, size) )
*status = 1 ;
else
*status = 0 ;
}
int reverse(double * input, int size)
{
int initptr, endptr;
initptr = 0; endptr = size-1 ;
while((endptr-initptr)>= 1)
{
input[initptr] = input[initptr] + input[endptr] ;
input[endptr] = input[initptr] - input[endptr] ;
input[initptr] = input[initptr] - input[endptr] ;
initptr++ ;
endptr-- ;
}
return 1 ;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?