亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libsvmaux.c

?? Support Vector Machines is a powerful methodology for solving problems in nonlinear classification a
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*============================================================================*\| MATLAB Interface for LIBSVM, Version 1.2                                     ||                                                                              || Copyright (C) 2004-2005 Michael Vogt                                         || Written by Michael Vogt, Atanas Ayarov and Bennet Gedan                      ||                                                                              || This program is free software; you can redistribute it and/or modify it      || under the terms of the GNU General Public License as published by the Free   || Software Foundation; either version 2 of the License, or (at your option)    || any later version.                                                           |\*============================================================================*/#include <string.h>#include <math.h>#include "mex.h"#include "libsvmaux.h"/*----------------------------------------------------------------------------*\| Fetch kernel function from MATLAB.                                           |\*----------------------------------------------------------------------------*/int getKernel(             /* Return: 0 on success, 1 on failure */  kernel *ker,             /* [out] kernel as needed by the algorithms */  const mxArray *mlker,    /* [in] kernel as provided by MATLAB */  long n )                 /* [in] input dimension (n<=0: adjust it to mlker) */{  long k, m;               /* counters */  int d;                   /* flag */  char strbuf[mxMAXNAM];   /* buffer for contents of type field */  mxArray *F, *F2;         /* fields of MATLAB struct */  /* --- check if type field is a string --- */  if ( (F=mxGetField(mlker,0,FNAME_TYPE)) == NULL ||       mxIsEmpty(F) ||       mxGetNumberOfDimensions(F) > 2 ||       !mxIsChar(F) )    return 1;  else    mxGetString(F,strbuf,mxMAXNAM+1);  /* --- check if "mlker" is a valid linear kernel --- */  if ( !strcmp(strbuf,KNAME_LINEAR) ) {    ker->type = KERNEL_LINEAR;    return 0;  }  /* --- check if "mlker" is a valid polynomial kernel --- */  else if ( !strcmp(strbuf,KNAME_POLY) &&            (F=mxGetField(mlker,0,FNAME_DEGR)) != NULL &&            mxGetNumberOfElements(F) == 1 &&            mxIsDouble(F) &&            !mxIsComplex(F) &&            mxGetScalar(F) >= 1 &&            (F2=mxGetField(mlker,0,FNAME_OFFSET)) != NULL &&            mxGetNumberOfElements(F2) == 1 &&            mxIsDouble(F2) &&            !mxIsComplex(F2)) {    if ( (int)mxGetScalar(F) == 1 && mxGetScalar(F2) == 0.0 )      ker->type = KERNEL_LINEAR;    else {      ker->type = KERNEL_POLY;      ker->degree = (int)mxGetScalar(F);      ker->offset = mxGetScalar(F2);    }    return 0;  }  /* --- check if "mlker" is a valid Gauss kernel --- */  else if ( !strcmp(strbuf,KNAME_GAUSS) &&            (F=mxGetField(mlker,0,FNAME_WIDTH)) != NULL &&            !mxIsEmpty(F) &&            mxGetNumberOfDimensions(F) <= 2 &&            (mxGetN(F) == 1 || mxGetM(F) == 1) &&            mxIsDouble(F) &&            !mxIsComplex(F) )  {    m = mxGetNumberOfElements(F);    if (n<1)               /* if n is not specified: */      n = m;               /* take it from MATLAB struct */    else if (m>n)          /* if more widths than dimensions: */      m = n;               /* ignore the rest */    for (k=0; k<m; k++) {  /* all widths positive? */      if (mxGetPr(F)[k] <= 0)        return 1;    }    d = 0;                 /* different vector elements? */    for (k=1; k<m; k++) {      if (mxGetPr(F)[k] != mxGetScalar(F))        d = 1;    }    if (m == 1 || d == 0) {    /* use scalar gamma */      ker->type = KERNEL_RADIAL;      ker->gamma = 0.5/(mxGetScalar(F)*mxGetScalar(F));    }    else {                 /* use gamma vector */      ker->type = KERNEL_GAUSS;      ker->gamman = n;      ker->gammav = mxMalloc(n*sizeof(double));      for (k=0; k<m; k++)        ker->gammav[k] = 0.5/(mxGetPr(F)[k]*mxGetPr(F)[k]);      for ( ; k<n; k++)        ker->gammav[k] = ker->gammav[m-1];    }    return 0;  }  /* --- check if "mlker" is a valid tanh kernel --- */  else if ( !strcmp(strbuf,KNAME_TANH) &&            (F=mxGetField(mlker,0,FNAME_GAMMA)) != NULL &&            mxGetNumberOfElements(F) == 1 &&            mxIsDouble(F) &&            !mxIsComplex(F) &&            mxGetScalar(F) > 0 &&            (F2=mxGetField(mlker,0,FNAME_OFFSET)) != NULL &&            mxGetNumberOfElements(F2) == 1 &&            mxIsDouble(F2) &&            !mxIsComplex(F2) &&            mxGetScalar(F2) < 0 ) {    ker->type = KERNEL_TANH;    ker->gamma = mxGetScalar(F);    ker->offset = mxGetScalar(F2);    return 0;  }  /* --- otherwise return an error --- */  return 1;}/*----------------------------------------------------------------------------*\| Fetch MATLAB SVM struct into multiple variables.                             |\*----------------------------------------------------------------------------*/int getSvm(                /* Return: 0 on success, 1 on failure */  const mxArray *mlsvm,    /* [in] SVM as provided by MATLAB */  double **a,              /* [out] *a points to the SVM coefficients */  double **xs,             /* [out] *xs points to the support vectors */  long    *Ns,             /* [out] number of support vectors */  long    *n,              /* [out] input dimension */  double  *b,              /* [out] bias term */  kernel  *ker )           /* [out] kernel function struct */{  mxArray *F;              /* field of MATLAB struct */  /* --- check for valid SVM coefficients --- */  if ( (F=mxGetField(mlsvm,0,FNAME_COEF)) == NULL ||       mxIsEmpty(F) ||       mxGetNumberOfDimensions(F) > 2 ||       !mxIsDouble(F) ||       mxIsComplex(F) )    return 1;  /* --- check for valid support vectors --- */  if ( (F=mxGetField(mlsvm,0,FNAME_VECT)) == NULL ||       mxIsEmpty(F) ||       mxGetNumberOfDimensions(F) > 2 ||       !mxIsDouble(F) ||       mxIsComplex(F) ||       mxGetM(F) != mxGetM(mxGetField(mlsvm,0,FNAME_COEF)) )    return 1;  /* --- check for valid bias term --- */  if ( (F=mxGetField(mlsvm,0,FNAME_BIAS)) == NULL ||       mxGetNumberOfElements(F) != 1 ||       !mxIsDouble(F) ||       mxIsComplex(F) )    return 1;  /* --- try to get kernel struct using getKernel() --- */  if ( (F=mxGetField(mlsvm,0,FNAME_KER)) == NULL ||       getKernel(ker,F,mxGetN(mxGetField(mlsvm,0,FNAME_VECT))) )    return 1;  /* --- get all other data --- */  *a  = mxGetPr(mxGetField(mlsvm,0,FNAME_COEF));  *xs = mxGetPr(mxGetField(mlsvm,0,FNAME_VECT));  *Ns = mxGetM(mxGetField(mlsvm,0,FNAME_VECT));  *n  = mxGetN(mxGetField(mlsvm,0,FNAME_VECT));  *b  = mxGetScalar(mxGetField(mlsvm,0,FNAME_BIAS));  return 0;}/*----------------------------------------------------------------------------*\| Get pointer to MATLAB option struct; convert key/value pairs if necessary.   |\*----------------------------------------------------------------------------*/int getOptionsStruct(         /* Return: always 0 */  const mxArray **mlopt,      /* [out] pointer to MATLAB options struct */  const mxArray *optlist[],   /* [in] pointer to the element after the kernel */  int nopt )                  /* [in] number of elements after the kernel */{  /* --- in case of input struct pass struct to getOptions -- */  if (mxIsStruct(optlist[0])) {    if (nopt == 1 && mxGetNumberOfElements(optlist[0]) == 1)      *mlopt = optlist[0];    else      mexErrMsgTxt("Invalid argument (options).");  }  /* --- check for key/value structure --- */  else {    mxArray *temp;            /* needed since **mlopt must not be changed */    char strbuf[mxMAXNAM];    /* string buffer */    int k;    if (nopt % 2 == 1)      mexErrMsgTxt("Invalid options structure (string,value)");    for (k=0; k<nopt; k+=2) {      if ( !mxIsChar(optlist[k]) ||           mxGetM(optlist[k]) != 1 &&           mxGetN(optlist[k]) != 1 )        mexErrMsgTxt("Invalid options structure (string,value)");    }    temp = mxCreateStructMatrix(1,1,0,NULL);    for (k=0; k<nopt; k+=2) {      mxGetString(optlist[k],strbuf,mxMAXNAM+1);      mxSetFieldByNumber(temp, 0, mxAddField(temp, strbuf),      mxDuplicateArray(optlist[k+1]));    }    *mlopt = temp;  }  return 0;}/*----------------------------------------------------------------------------*\| Fetch MATLAB options into struct variable.                                   |\*----------------------------------------------------------------------------*/int getOptions(            /* Return: 0 on success, 1 on failure */  options       *opt,      /* [out] struct for optimizer options */  const mxArray *mlopt,    /* [in] options as provided by MATLAB */  long           N )       /* [in] number of data */{  int k,l;                 /* counter */  mxArray *F;              /* field of options struct */  char strbuf[mxMAXNAM];  char strbuf2[mxMAXNAM];  float temp;  for (k=0; k<mxGetNumberOfFields(mlopt); k++) {    F = mxGetFieldByNumber(mlopt,0,k);    /* --- Treat option FNAME_TOL --- */    if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_TOL) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 0 )        opt->tol = mxGetScalar(F);      else        mexWarnMsgTxt("Invalid option \"" FNAME_TOL "\" ignored.");    }    /* --- Treat option FNAME_CACHE --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_CACHE) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 1 )        opt->cache = (double)(sizeof(double)*N*(long)mxGetScalar(F))/(1024.0*1024.0);      else if ( mxIsChar(F) &&                !mxIsEmpty(F) &&                mxGetM(F) == 1 &&                mxGetNumberOfDimensions(F) == 2 ) {        mxGetString(F,strbuf,mxMAXNAM+1);        for (l=0;l<mxMAXNAM;l++)          strbuf[l]=tolower(strbuf[l]);        if ( sscanf(strbuf,"%g",&temp) != EOF &&             sscanf(strbuf,"%*g %s",strbuf2) != EOF ) {          if ( strcmp(strbuf2,"mb") == 0 )            opt->cache = (double)temp;          else if ( strcmp(strbuf2,"kb") == 0 )            opt->cache = (double)temp/1024;          else            mexWarnMsgTxt("Invalid option \"" FNAME_CACHE "\" ignored.");        }        else          mexWarnMsgTxt("Invalid option \"" FNAME_CACHE "\" ignored.");      }      else        mexWarnMsgTxt("Invalid option \"" FNAME_CACHE "\" ignored.");    }    /*  --- Treat option FNAME_SHRINK --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_SHRINK) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 0 )        opt->shrink = (int)mxGetScalar(F);      else        mexWarnMsgTxt("Invalid option \"" FNAME_SHRINK "\" ignored.");    }    /* --- Treat option FNAME_WEIGHT --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_WEIGHT) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 0 )        opt->weight = mxGetScalar(F);      else        mexWarnMsgTxt("Invalid option \"" FNAME_WEIGHT "\" ignored.");    }    /* --- Treat option FNAME_WLABEL --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_WLABEL) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) )        opt->wlabel = (int)mxGetScalar(F);      else        mexWarnMsgTxt("Invalid option \"" FNAME_WLABEL "\" ignored.");    }    /* --- Treat option FNAME_VERBOSE --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_VERBOSE) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 0 )      opt->verbose = (int)mxGetScalar(F);    else      mexWarnMsgTxt("Invalid option \"" FNAME_VERBOSE "\" ignored.");    }    /* --- Treat option FNAME_STYLE --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_STYLE) ) {      if ( mxIsChar(F) &&           !mxIsEmpty(F) &&           mxGetM(F) == 1 &&           mxGetNumberOfDimensions(F) == 2) {        if (mxGetScalar(F) == 'n')          opt->style = 1;        else          opt->style = 0;      }      else        mexWarnMsgTxt("Invalid option \"" FNAME_STYLE "\" ignored.");    }    /* --- Treat option FNAME_PROBOPT --- */    else if ( !strcmp(mxGetFieldNameByNumber(mlopt,k),FNAME_PROBOPT) ) {      if ( mxGetNumberOfElements(F) == 1 &&           mxIsDouble(F) &&           !mxIsComplex(F) &&           mxGetScalar(F) >= 0 )        opt->prob = (int)mxGetScalar(F);      else        mexWarnMsgTxt("Invalid option \"" FNAME_PROBOPT "\" ignored.");    }  }  return 0;}/*----------------------------------------------------------------------------*\| Dump information about settings into MATLAB window.                          |\*----------------------------------------------------------------------------*/int dumpOptions(           /* Return: always 0 */  kernel  *ker,            /* [in] kernel struct */  options *opt,            /* [in] option struct */  double   C,              /* [in] C or nu */  double   e,              /* [in] epsilon or nu */  int      svmproblem )    /* [in] 0: SVR, 1: SVC, 2: One-Class */{  mexPrintf("--------------------\n");  mexPrintf("OPTIONS\n");  switch ( svmproblem ) {    case 0: if (opt->style == 0) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品在线观看| 国产精品91xxx| 久久国产精品99久久人人澡| av综合在线播放| 欧美成人激情免费网| 亚洲一二三专区| 成人免费看视频| 欧美xxxxx牲另类人与| 亚洲va欧美va天堂v国产综合| 成人黄色av网站在线| 精品久久国产字幕高潮| 亚洲午夜电影网| 97成人超碰视| 国产免费成人在线视频| 精品一区二区国语对白| 欧美日韩一区国产| 亚洲精选免费视频| 成人动漫一区二区| 中文成人综合网| 国产成人精品一区二| 久久婷婷久久一区二区三区| 免费精品视频在线| 欧美大片在线观看一区| 日本欧美加勒比视频| 91麻豆精品国产91久久久久| 亚洲一级二级在线| 欧美日本视频在线| 天天操天天综合网| 日韩一级免费观看| 韩国成人福利片在线播放| 亚洲精品一线二线三线| 国产在线不卡一区| 中文字幕二三区不卡| 99久久精品久久久久久清纯| 日韩伦理免费电影| 在线视频综合导航| 日日噜噜夜夜狠狠视频欧美人 | 久久久久免费观看| 狠狠色丁香九九婷婷综合五月| 欧美成人午夜电影| 狠狠色伊人亚洲综合成人| 2020国产精品| 不卡视频在线观看| 亚洲蜜桃精久久久久久久| 91久久香蕉国产日韩欧美9色| 伊人夜夜躁av伊人久久| 欧美裸体一区二区三区| 青青草原综合久久大伊人精品优势| 日韩欧美国产三级| 成人av电影在线播放| 亚洲第一搞黄网站| 亚洲精品在线三区| 色婷婷av一区二区三区大白胸| 日韩精品一区第一页| 国产欧美日韩久久| 欧美综合天天夜夜久久| 毛片av一区二区| 国产精品欧美一级免费| 欧美视频日韩视频| 国产精品综合av一区二区国产馆| 亚洲青青青在线视频| 在线综合亚洲欧美在线视频| 国产精品影视在线| 亚洲大片一区二区三区| 26uuu成人网一区二区三区| 91麻豆自制传媒国产之光| 视频一区欧美精品| 国产精品久久久久9999吃药| 4438x亚洲最大成人网| 国产麻豆91精品| 午夜影院在线观看欧美| 久久精品男人天堂av| 日本道在线观看一区二区| 久久精品国产久精国产| 亚洲精品久久嫩草网站秘色| 精品国产精品一区二区夜夜嗨| 91美女蜜桃在线| 国产精品中文有码| 日韩国产一区二| 一区二区三区久久| 国产精品久久久久久妇女6080| 日韩精品在线网站| 欧美三级午夜理伦三级中视频| 国精产品一区一区三区mba视频 | 欧美日韩精品久久久| 国产盗摄精品一区二区三区在线 | 国产精品乱子久久久久| 日韩视频中午一区| 欧美日韩一区二区在线视频| av激情成人网| 国产电影一区在线| 国产一区欧美二区| 韩国三级在线一区| 老汉av免费一区二区三区| 午夜精品久久久久久久99水蜜桃| 综合久久国产九一剧情麻豆| 久久久久国产精品麻豆ai换脸 | 日本精品裸体写真集在线观看| 国产精品亚洲午夜一区二区三区| 另类综合日韩欧美亚洲| 免费视频最近日韩| 男人的j进女人的j一区| 日本美女一区二区三区视频| 亚洲国产日韩a在线播放| 亚洲视频一二三| 亚洲精选一二三| 亚洲柠檬福利资源导航| 一区二区三区在线视频播放 | 欧美激情中文字幕一区二区| 精品成人在线观看| 久久影院电视剧免费观看| 欧美成人精品3d动漫h| 2欧美一区二区三区在线观看视频| 日韩精品在线看片z| 久久尤物电影视频在线观看| 久久久久久久综合狠狠综合| 久久精品视频免费| 亚洲欧美综合网| 最新久久zyz资源站| 亚洲精品免费在线播放| 亚洲亚洲精品在线观看| 视频一区国产视频| 国产专区欧美精品| 成人一级黄色片| 色综合久久精品| 69堂成人精品免费视频| 在线播放日韩导航| 精品国产免费人成电影在线观看四季| 精品久久久久久无| 日本一区二区不卡视频| 亚洲自拍偷拍麻豆| 蜜桃91丨九色丨蝌蚪91桃色| 国产乱淫av一区二区三区| 97久久超碰国产精品电影| 欧美色欧美亚洲另类二区| 欧美电影精品一区二区| 国产精品高潮呻吟久久| 亚洲国产视频直播| 国产尤物一区二区在线| 91丨porny丨蝌蚪视频| 欧美精品一卡二卡| 精品粉嫩超白一线天av| 亚洲色图欧洲色图| 久久国产成人午夜av影院| 欧美一区二区三区四区久久| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品久久久久久亚洲毛片 | 亚洲精品美腿丝袜| 奇米四色…亚洲| 成人av片在线观看| 91精品一区二区三区在线观看| 国产清纯白嫩初高生在线观看91 | 亚洲国产精品99久久久久久久久| 亚洲摸摸操操av| 精品一区二区三区av| 欧美综合亚洲图片综合区| 久久久久久久久久久99999| 亚洲国产视频直播| 99re热这里只有精品免费视频| 日韩无一区二区| 亚洲欧美另类在线| 国模套图日韩精品一区二区| 欧美在线观看禁18| 中文字幕av在线一区二区三区| 免费成人深夜小野草| 欧美三级电影在线观看| www日韩大片| 日本成人在线看| 欧美性色黄大片手机版| 成人免费在线播放视频| 国产精品1区二区.| 精品国产伦一区二区三区观看体验| 亚洲一区二区三区四区在线观看| 国产99久久久久| 精品国产一二三| 蜜桃视频第一区免费观看| 欧美日韩精品欧美日韩精品一| 日韩伦理电影网| 99国内精品久久| 中文字幕一区二| 91精品黄色片免费大全| 中文字幕一区三区| 国产乱码字幕精品高清av| 日韩欧美一区在线观看| 天天操天天综合网| 4438x亚洲最大成人网| 日日欢夜夜爽一区| 欧美一区二区高清| 日韩**一区毛片| 欧美一区二区在线看| 日韩精品亚洲专区| 日韩一区二区影院| 蜜臀av一区二区三区| 日韩免费观看高清完整版| 久色婷婷小香蕉久久| 精品裸体舞一区二区三区| 美女一区二区三区| 欧美精品一区二区三区四区| 老司机午夜精品| 日韩欧美国产电影|