• 大小: 134KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: SVM  

资源简介

libSVMkuozhanbao.matlab扩展文件包

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

#include “mex.h“

#if MX_API_VER < 0x07030000
typedef int mwIndex;
#endif 
#define max(xy) (((x)>(y))?(x):(y))
#define min(xy) (((x)<(y))?(x):(y))

void exit_with_help()
{
mexPrintf(
“Usage: [label_vector instance_matrix] = libsvmread(‘filename‘);\n“
);
}

static void fake_answer(mxArray *plhs[])
{
plhs[0] = mxCreateDoubleMatrix(0 0 mxREAL);
plhs[1] = mxCreateDoubleMatrix(0 0 mxREAL);
}

static char *line;
static int max_line_len;

static char* readline(FILE *input)
{
int len;

if(fgets(linemax_line_leninput) == NULL)
return NULL;

while(strrchr(line‘\n‘) == NULL)
{
max_line_len *= 2;
line = (char *) realloc(line max_line_len);
len = (int) strlen(line);
if(fgets(line+lenmax_line_len-leninput) == NULL)
break;
}
return line;
}

// read in a problem (in libsvm format)
void read_problem(const char *filename mxArray *plhs[])
{
int max_index min_index inst_max_index i;
long elements k;
FILE *fp = fopen(filename“r“);
int l = 0;
char *endptr;
mwIndex *ir *jc;
double *labels *samples;

if(fp == NULL)
{
mexPrintf(“can‘t open input file %s\n“filename);
fake_answer(plhs);
return;
}

max_line_len = 1024;
line = (char *) malloc(max_line_len*sizeof(char));

max_index = 0;
min_index = 1; // our index starts from 1
elements = 0;
while(readline(fp) != NULL)
{
char *idx *val;
// features
int index = 0;

inst_max_index = -1; // strtol gives 0 if wrong format and precomputed kernel has  start from 0
strtok(line“ \t“); // label
while (1)
{
idx = strtok(NULL“:“); // index:value
val = strtok(NULL“ \t“);
if(val == NULL)
break;

errno = 0;
index = (int) strtol(idx&endptr10);
if(endptr == idx || errno != 0 || *endptr != ‘\0‘ || index <= inst_max_index)
{
mexPrintf(“Wrong input format at line %d\n“l+1);
fake_answer(plhs);
return;
}
else
inst_max_index = index;

min_index = min(min_index index);
elements++;
}
max_index = max(max_index inst_max_index);
l++;
}
rewind(fp);

// y
plhs[0] = mxCreateDoubleMatrix(l 1 mxREAL);
// x^T
if (min_index <= 0)
plhs[1] = mxCreateSparse(max_index-min_index+1 l elements mxREAL);
else
plhs[1] = mxCreateSparse(max_index l elements mxREAL);

labels = mxGetPr(plhs[0]);
samples = mxGetPr(plhs[1]);
ir = mxGetIr(plhs[1]);
jc = mxGetJc(plhs[1]);

k=0;
for(i=0;i {
char *idx *val *label;
jc[i] = k;

readline(fp);

label = strtok(line“ \t“);
labels[i] = strtod(label&endptr);
if(endptr == label)
{
mexPrintf(“Wrong input format at line %d\n“i+1);
fake_answer(plhs);
return;
}

// features
while(1)
{
idx = strtok(NULL“:“);
val = strtok(NULL“ \t“);
if(val == NULL)
break;

ir[k] = (mwIndex) (strtol(idx&endptr10) - min_index); // precomputed kernel has  start from 0

errno = 0;
samples[k] = strtod(val&end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1497  2010-03-19 06:52  libsvm-mat-2.91-1\COPYRIGHT

     文件      28904  2009-12-31 11:11  libsvm-mat-2.91-1\heart_scale.mat

     文件       3823  2009-12-31 11:11  libsvm-mat-2.91-1\libsvmread.c

     文件      10752  2014-03-29 21:28  libsvm-mat-2.91-1\libsvmread.mexw64

     文件       2123  2009-12-31 11:11  libsvm-mat-2.91-1\libsvmwrite.c

     文件       9216  2014-03-29 21:28  libsvm-mat-2.91-1\libsvmwrite.mexw64

     文件        367  2014-03-29 09:56  libsvm-mat-2.91-1\make.m

     文件       1462  2009-12-31 11:11  libsvm-mat-2.91-1\Makefile

     文件       9181  2009-12-31 11:11  libsvm-mat-2.91-1\README

     文件      61965  2010-04-08 14:35  libsvm-mat-2.91-1\svm.cpp

     文件       3036  2010-04-08 14:35  libsvm-mat-2.91-1\svm.h

     文件     145157  2014-03-29 21:28  libsvm-mat-2.91-1\svm.obj

     文件       9054  2014-03-29 21:27  libsvm-mat-2.91-1\svmpredict.c

     文件      23552  2014-03-29 21:28  libsvm-mat-2.91-1\svmpredict.mexw64

     文件      11256  2014-03-29 14:23  libsvm-mat-2.91-1\svmtrain.c

     文件      61952  2014-03-29 14:24  libsvm-mat-2.91-1\svmtrain2.mexw64

     文件       7684  2009-12-31 11:11  libsvm-mat-2.91-1\svm_model_matlab.c

     文件        201  2009-12-31 11:11  libsvm-mat-2.91-1\svm_model_matlab.h

     文件       9275  2014-03-29 21:28  libsvm-mat-2.91-1\svm_model_matlab.obj

     目录          0  2014-03-29 21:28  libsvm-mat-2.91-1

----------- ---------  ---------- -----  ----

               400457                    20


评论

共有 条评论