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

📄 mexutils.c

📁 sift的matlab代码
💻 C
字号:
/* file:        mexutils.c ** author:      Andrea Vedaldi** description: Utility functions to write MEX files.**/#include"mex.h"#include<math.h>#undef M_PI#define M_PI 3.14159265358979/** @biref Is real scalar? ** ** @return @c true if the array @a A is a real scalar. **/intuIsRealScalar(const mxArray* A){  return     mxIsDouble(A) &&     !mxIsComplex(A) &&    mxGetNumberOfDimensions(A) == 2 &&    mxGetM(A) == 1 &&    mxGetN(A) == 1 ;}/** @brief Is real matrix? ** ** The function checks wether the argument @a A is a real matrix.  In ** addition, if @a M >= 0, it checks wether the number of rows is ** equal to @a M and, if @a N >= 0, if the number of columns is equal ** to @a N. ** ** @param M number of rows. ** @param N number of columns. ** @return @c true if the array is a real matrix with the specified format. **/intuIsRealMatrix(const mxArray* A, int M, int N){  return      mxIsDouble(A) &&    !mxIsComplex(A) &&    mxGetNumberOfDimensions(A) == 2 &&    ((M>=0)?(mxGetM(A) == M):1) &&    ((N>=0)?(mxGetN(A) == N):1) ;   }/** @brief Is real vector? ** ** The function checks wether the argument  @a V is a real vector. By ** definiton, a  matrix is a vector  if one of its  dimension is one. ** In addition, if  @a D >= 0, it checks wether  the dimension of the ** vecotr is equal to @a D. ** ** @param D lenght of the vector. ** @return @c true if the array is a real vector of the specified dimension. **/intuIsRealVector(const mxArray* V, int D) {  int M = mxGetM(V) ;  int N = mxGetN(V) ;  int is_vector = (N == 1) || (M == 1) ;    return       mxIsDouble(V) &&    !mxIsComplex(V) &&    mxGetNumberOfDimensions(V) == 2 &&    is_vector &&    ( D < 0 || N == D || M == D) ;}/** @brief Is a string? ** ** The function checks wether the array @a S is a string. If ** @a L is non-negative, it also check wether the strign has ** length @a L. ** ** @return @a c true if S is a string of the specified length. **/intuIsString(const mxArray* S, int L){  int M = mxGetM(S) ;  int N = mxGetN(S) ;  return     mxIsChar(S) &&    M == 1 &&    (L < 0 || N == L) ;}/** ** **/

⌨️ 快捷键说明

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