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

📄 matrix.h

📁 《精通Matlab6.5版》张志勇等编著
💻 H
📖 第 1 页 / 共 3 页
字号:
 */
extern mxArray *mxCreateDoubleScalar(double value);


/*
 * Create a 2-Dimensional sparse array.
 */
extern mxArray *mxCreateSparse(int m, int n, int nzmax, mxComplexity flag);


/*
 * Create a 2-D sparse logical array
 */
extern mxArray *mxCreateSparseLogicalMatrix(int m, int n, int nzmax);


/*
 * Copies characters from a MATLAB array to a char array
 * nChars is the number of bytes in the output buffer
 */
extern void mxGetNChars(const mxArray *pa, char *buf, int nChars);


/* 
 * Converts a string array to a C-style string.
 */
extern int mxGetString(const mxArray *pa, char *buf, int buflen);


/*
 * Create a NULL terminated C string from an mxArray of type mxCHAR_CLASS
 * Supports multibyte character sets.  The resulting string must be freed
 * with mxFree.  Returns NULL on out of memory or non-character arrays.
 */
extern char *mxArrayToString(const mxArray *pa);


/*
 * Create a 1-by-n string array initialized to str.
 */
extern mxArray *mxCreateStringFromNChars(const char *str, int n);


/*
 * Create a 1-by-n string array initialized to null terminated string
 * where n is the length of the string.
 */
extern mxArray *mxCreateString(const char *str);


/*
 * Create an N-Dimensional array to hold string data;
 * initialize all elements to 0.
 */
extern mxArray *mxCreateCharArray(int ndim, const int *dims);


/*
 * Create a string array initialized to the strings in str. 
 */
extern mxArray *mxCreateCharMatrixFromStrings(int m, const char **str);


/*
 * Create a 2-Dimensional cell array, with each cell initialized
 * to NULL.
 */
extern mxArray *mxCreateCellMatrix(int m, int n);


/*
 * Create an N-Dimensional cell array, with each cell initialized
 * to NULL. 
 */
extern mxArray *mxCreateCellArray(int ndim, const int *dims);


/*
 * Create a 2-Dimensional structure array having the specified fields;
 * initialize all values to NULL.
 */ 
extern mxArray *mxCreateStructMatrix(int m, int n, int nfields, const char **fieldnames);


/*
 * Create an N-Dimensional structure array having the specified fields;
 * initialize all values to NULL.
 */ 
extern mxArray *mxCreateStructArray(int ndim, const int *dims, int nfields,
								const char **fieldnames);


/*
 * Make a deep copy of an array, return a pointer to the copy. 
 */
extern mxArray *mxDuplicateArray(const mxArray *in);


/*
 * Set classname of an unvalidated object array.  It is illegal to 
 * call this function on a previously validated object array. 
 * Return 0 for success, 1 for failure.
 */
extern int mxSetClassName(mxArray *pa, const char *classname);


/* 
 * Add a field to a structure array. Returns field number on success or -1
 * if inputs are invalid or an out of memory condition occurs.
 */
extern int mxAddField(mxArray *pa, const char *fieldname);


/*
 * Remove a field from a structure array.  Does nothing if no such field exists.
 * Does not destroy the field itself.
*/
extern void mxRemoveField(mxArray *pa, int field);


#define DEEP 0
#define SHALLOW 1


/*
 * Only for JIT use.
 */
extern void mxResizeArray(mxArray* plhs, int nin, int* ldim);


#include <stdlib.h>


#include <stdlib.h>

#ifdef __cplusplus
    }	/* extern "C" */
#endif

#ifdef __cplusplus
    extern "C" {
#endif


#ifdef __WATCOMC__
#ifndef __cplusplus
#pragma aux mxGetEps value [8087];
#pragma aux mxGetInf value [8087];
#pragma aux mxGetNaN value [8087];
#endif
#endif


/*
 * Function for obtaining MATLAB's concept of EPS
 */
extern double mxGetEps(void);


/*
 * Function for obtaining MATLAB's concept of INF (Used in MEX-File callback).
 */
extern double mxGetInf(void);


/*
 * Function for obtaining MATLAB's concept of NaN (Used in MEX-File callback).
 */
extern double mxGetNaN(void);


/*
 * test for finiteness in a machine-independent manner
 */
extern bool mxIsFinite(
    double x                  /* value to test */
    );


/*
 * test for infinity in a machine-independent manner
 */
extern bool mxIsInf(
    double x                  /* value to test */
    );


/*
 * test for NaN in a machine-independent manner
 */
extern bool mxIsNaN(
    double x                  /* value to test */
    );


typedef void * (*calloc_proc)(size_t nmemb, size_t size);


typedef void (*free_proc)(void *ptr);


typedef void * (*malloc_proc)(size_t size);


typedef void * (*realloc_proc)(void *ptr, size_t size);


#if !defined(MATLAB_MEX_FILE)


/*
 * Set the memory allocation functions used by the matrix library. You must
 * supply calloc, realloc, free and malloc functions when using mxSetAllocFcns.
 * NOTE: the free function MUST handle the case when the pointer to be freed
 * is NULL.  The default AllocFcns for the matrix library are based on the
 * standard C library functions calloc, free, realloc, and malloc.
 */
extern void mxSetAllocFcns(
	calloc_proc	callocfcn,
	free_proc	freefcn,
	realloc_proc	reallocfcn,
	malloc_proc	mallocfcn
	);


#endif


#define mxCreateFull() mxCreateFull_is_obsolete
#define mxIsFull()     mxIsFull_is_obsolete
#define mxIsString()   mxIsString_is_obsolete
#define mxFreeMatrix() mxFreeMatrix_is_obsolete


#define mxCreateScalarDouble(d) mxCreateDoubleScalar(d)

#if defined(V5_COMPAT)


/*
 * NOTE: This function is obsolete and should no longer be used. Please
 *       use one of the following routines instead:
 *                         mxCreateLogicalScalar
 *                         mxCreateLogicalMatrix
 *                         mxCreateLogicalArray
 *
 * Specify that the data in an array is to be treated as Boolean data.
 */
extern void mxSetLogical(mxArray *pa);


/*
 * NOTE: This function is obsolete and should no longer be used.
 *
 * Specify that the data in an array is to be treated as numerical
 * (as opposed to Boolean) data. 
 */
extern void mxClearLogical(mxArray *pa);


#else
#define mxSetLogical()     mxSetLogical_is_obsolete
#define mxClearLogical()   mxClearLogical_is_obsolete
#endif /* defined(V5_COMPAT) */


#if defined(V5_COMPAT)


/* 
 * Get pointer to array name.
 */
extern const char *mxGetName(
    const mxArray *pa		/* pointer to array */
    );

 
/* 
 * Set array name.  This routine copies the string pointed to by s
 * into the mxMAXNAM length character name field.
 */
extern void mxSetName(
    mxArray    *pa,		/* pointer to array */
    const char *s		/* string to copy into name */
    );


#else
#define mxGetName()     mxGetName_is_obsolete
#define mxSetName()     mxSetName_is_obsolete
#endif /* defined(V5_COMPAT) */


#include <stdlib.h>


#include <stdlib.h>

#ifdef __cplusplus
    }	/* extern "C" */
#endif


#include <stdlib.h>

#ifdef __cplusplus
    extern "C" {
#endif


/*
 * Inc reference count for an array
 */
extern void mxIncRefCount(mxArray *pa);


#if defined(ARRAY_ACCESS_INLINING)
#define mxIncRefCount(pa)       ((pa)->reference_count++)
#endif /* defined(ARRAY_ACCESS_INLINING) */


/*
 * Increment the reference count for an array.
 */
extern int mxIncrementRefCount(
                        mxArray *pa		/* pointer to array */
                        );


/* 
 * Decrement the reference count for an array.
 */
extern int mxDecrementRefCount(
                        mxArray *pa		/* pointer to array */
                        );

#ifdef __cplusplus
    }	/* extern "C" */
#endif


/* $Revision: 1.14 $ */
#ifdef ARGCHECK

#include "mwdebug.h" /* Prototype _d versions of API functions */

#define mxAddField(pa, fieldname)                       mxAddField_d(pa, fieldname, __FILE__, __LINE__)
#define mxArrayToString(pa)				mxArrayToString_d(pa, __FILE__, __LINE__)
#define mxCalcSingleSubscript(pa, nsubs, subs)          mxCalcSingleSubscript_d(pa, nsubs, subs, __FILE__, __LINE__) 
#define mxCalloc(nelems, size)                          mxCalloc_d(nelems, size, __FILE__, __LINE__)
#define mxCreateCellArray(ndim, dims)	                mxCreateCellArray_d(ndim, dims, __FILE__, __LINE__)
#define mxCreateCellMatrix(m, n)                        mxCreateCellMatrix_d(m, n, __FILE__, __LINE__)
#define mxCreateCharArray(ndim, dims)                   mxCreateCharArray_d(ndim, dims, __FILE__, __LINE__)
#define mxCreateCharMatrixFromStrings(m, strings)       mxCreateCharMatrixFromStrings_d(m, strings, __FILE__, __LINE__)
#define mxCreateDoubleMatrix(m, n, cplxflag)		mxCreateDoubleMatrix_d(m, n, cplxflag, __FILE__, __LINE__)
#define mxCreateDoubleScalar(value)		        mxCreateDoubleScalar_d(value, __FILE__, __LINE__)
#define mxCreateLogicalArray(ndim, dims)		mxCreateLogicalArray_d(ndim, dims, __FILE__, __LINE__)
#define mxCreateLogicalMatrix(m, n)		        mxCreateLogicalMatrix_d(m, n, __FILE__, __LINE__)
#define mxCreateLogicalScalar(value)	                mxCreateLogicalScalar_d(value, __FILE__, __LINE__)
#define mxCreateNumericArray(ndim, dims, classname, cplxflag) mxCreateNumericArray_d(ndim, dims, classname, cplxflag, __FILE__, __LINE__) 
#define mxCreateNumericMatrix(m, n, classid, cmplx_flag)      mxCreateNumericMatrix_d(m, n, classid, cmplx_flag, __FILE__, __LINE__)
#define mxCreateSparse(m, n, nzmax, cplxflag)           mxCreateSparse_d(m, n, nzmax, cplxflag, __FILE__, __LINE__) 
#define mxCreateSparseLogicalMatrix(m, n, nzmax)	mxCreateSparseLogicalMatrix_d(m, n, nzmax, __FILE__, __LINE__)
#define mxCreateString(string) mxCreateString_d(string, __FILE__, __LINE__)
#define mxCreateStructArray(ndim, dims, nfields, fieldnames)  mxCreateStructArray_d(ndim, dims, nfields, fieldnames, __FILE__, __LINE__)
#define mxCreateStructMatrix(m, n, nfields, fieldnames) mxCreateStructMatrix_d(m, n, nfields, fieldnames, __FILE__, __LINE__)
#define mxDestroyArray(pa)				mxDestroyArray_d(pa, __FILE__, __LINE__)
#define mxDuplicateArray(pa)			        mxDuplicateArray_d(pa, __FILE__, __LINE__)
#define mxFree(pm)					mxFree_d(pm, __FILE__, __LINE__)
#define mxGetChars(pa)					mxGetChars_d(pa, __FILE__, __LINE__)
#define mxGetCell(pa, index)			        mxGetCell_d(pa, index, __FILE__, __LINE__)
#define mxGetClassID(pa)				mxGetClassID_d(pa, __FILE__, __LINE__)
#define mxGetClassName(pa)				mxGetClassName_d(pa, __FILE__, __LINE__)
#define mxGetData(pa)                                   mxGetData_d(pa, __FILE__, __LINE__)
#define mxGetDimensions(pa)  			        mxGetDimensions_d(pa, __FILE__, __LINE__)
#define mxGetElementSize(pa)			        mxGetElementSize_d(pa, __FILE__, __LINE__)
#define mxGetField(pa, index, fieldname)                mxGetField_d(pa, index, fieldname, __FILE__, __LINE__)
#define mxGetFieldByNumber(pa, index, fieldnum)         mxGetFieldByNumber_d(pa, index, fieldnum, __FILE__, __LINE__)
#define mxGetFieldNameByNumber(pa, fieldnum)            mxGetFieldNameByNumber_d(pa, fieldnum, __FILE__, __LINE__)
#define mxGetFieldNumber(pa, fieldname)                 mxGetFieldNumber_d(pa, fieldname, __FILE__, __LINE__)
#define mxGetImagData(pa)                               mxGetImagData_d(pa, __FILE__, __LINE__)
#define mxGetIr(pa)                                     mxGetIr_d(pa, __FILE__, __LINE__)
#define mxGetJc(pa)                                     mxGetJc_d(pa, __FILE__, __LINE__)
#define mxGetLogicals(pa)				mxGetLogicals_d(pa, __FILE__, __LINE__)
#define mxGetNumberOfDimensions(pa)		        mxGetNumberOfDimensions_d(pa, __FILE__, __LINE__)
#define mxGetNumberOfElements(pa)		        mxGetNumberOfElements_d(pa, __FILE__, __LINE__)
#define mxGetNumberOfFields(pa)			        mxGetNumberOfFields_d(pa, __FILE__, __LINE__)
#define mxGetNzmax(pa)					mxGetNzmax_d(pa, __FILE__, __LINE__)
#define mxGetM(pa)					mxGetM_d(pa, __FILE__, __LINE__)
#define mxGetN(pa)					mxGetN_d(pa, __FILE__, __LINE__)
#define mxGetPi(pa)                                     mxGetPi_d(pa, __FILE__, __LINE__)
#define mxGetPr(pa)                                     mxGetPr_d(pa, __FILE__, __LINE__)
#define mxGetScalar(pa)					mxGetScalar_d(pa, __FILE__, __LINE__)
#define mxGetString(pa, buffer, buflen)                 mxGetString_d(pa, buffer, buflen, __FILE__, __LINE__)
#define mxIsCell(pa)					mxIsCell_d(pa, __FILE__, __LINE__)
#define mxIsChar(pa)					mxIsChar_d(pa, __FILE__, __LINE__)
#define mxIsClass(pa, classname)                        mxIsClass_d(pa, classname, __FILE__, __LINE__)
#define mxIsComplex(pa)					mxIsComplex_d(pa, __FILE__, __LINE__)
#define mxIsDouble(pa)					mxIsDouble_d(pa, __FILE__, __LINE__)
#define mxIsEmpty(pa)					mxIsEmpty_d(pa, __FILE__, __LINE__)
#define mxIsFromGlobalWS(pa)                            mxIsFromGlobalWS_d(pa, __FILE__, __LINE__)
#define mxIsInt8(pa)					mxIsInt8_d(pa, __FILE__, __LINE__)
#define mxIsInt16(pa)					mxIsInt16_d(pa, __FILE__, __LINE__)
#define mxIsInt32(pa)					mxIsInt32_d(pa, __FILE__, __LINE__)
#define mxIsLogical(pa)					mxIsLogical_d(pa, __FILE__, __LINE__)
#define mxIsNumeric(pa)					mxIsNumeric_d(pa, __FILE__, __LINE__)
#define mxIsOpaque(pa)					mxIsOpaque_d(pa, __FILE__, __LINE__)
#define mxIsObject(pa)					mxIsObject_d(pa, __FILE__, __LINE__)
#define mxIsSingle(pa)					mxIsSingle_d(pa, __FILE__, __LINE__)
#define mxIsSparse(pa)					mxIsSparse_d(pa, __FILE__, __LINE__)
#define mxIsStruct(pa)					mxIsStruct_d(pa, __FILE__, __LINE__)
#define mxIsUint8(pa)					mxIsUint8_d(pa, __FILE__, __LINE__)
#define mxIsUint16(pa)					mxIsUint16_d(pa, __FILE__, __LINE__)
#define mxIsUint32(pa)					mxIsUint32_d(pa, __FILE__, __LINE__)
#define mxIsUint64(pa)					mxIsUint64_d(pa, __FILE__, __LINE__)
#define mxMalloc(n) mxMalloc(n)			        mxMalloc_d(n, __FILE__, __LINE__)
#define mxRealloc(pm, nelems)			        mxRealloc_d(pm, nelems, __FILE__, __LINE__)
#define mxRemoveField(pa, field)		        mxRemoveField_d(pa, field, __FILE__, __LINE__)
#if !defined(MATLAB_MEX_FILE)
#define mxSetAllocFcns(callocptr, freeptr, reallocptr, mallocptr) mxSetAllocFcns_d(callocptr, freeptr, reallocptr, freeptr, __FILE__, __LINE__)
#endif /* MATLAB_MEX_FILE */
#define mxSetCell(pa, index, value)		        mxSetCell_d(pa, index, value, __FILE__, __LINE__)
#define mxSetClassName(pa, name)		        mxSetClassName_d(pa, name, __FILE__, __LINE__)
#define mxSetData(pa, pd)				mxSetData_d(pa, pd, __FILE__, __LINE__)
#define mxSetDimensions(pa, size, ndims)                mxSetDimensions_d(pa, size, ndims, __FILE__, __LINE__)
#define mxSetField(pa, index, fieldname, value)         mxSetField_d(pa, index, fieldname, value, __FILE__, __LINE__)
#define mxSetFieldByNumber(pa, index, fieldnum, value)  mxSetFieldByNumber_d(pa, index, fieldnum, value, __FILE__, __LINE__)
#define mxSetImagData(pa, pid)			        mxSetImagData_d(pa, pid, __FILE__, __LINE__)
#define mxSetIr(pa, ir)					mxSetIr_d(pa, ir, __FILE__, __LINE__)
#define mxSetJc(pa, jc)					mxSetJc_d(pa, jc, __FILE__, __LINE__)
#define mxSetM(pa, m)				        mxSetM_d(pa, m, __FILE__, __LINE__)
#define mxSetN(pa, n)				        mxSetN_d(pa, n, __FILE__, __LINE__)
#define mxSetNzmax(pa, nzmax)			        mxSetNzmax_d(pa, nzmax, __FILE__, __LINE__)
#define mxSetPi(pa, pi)					mxSetPi_d(pa, pi, __FILE__, __LINE__)
#define mxSetPr(pa, pr)					mxSetPr_d(pa, pr, __FILE__, __LINE__)
#endif


/* $Revision: 1.4 $ */
/*
 * Copyright (c) 1984-2001 The MathWorks, Inc.
 * All Rights Reserved.
 */


#endif /* matrix_h */

⌨️ 快捷键说明

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