资源简介
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
- 上一篇:遗传算法和聚类算法结合的matlab程序
- 下一篇:压缩感知DOA估计
相关资源
- 基于LSSVM的分类器,用于iris的三种分
- PSO-SVM 粒子算法优化支持向量机MATLA
- GA+SVM的MATLAB程序
- 粒子群SVM.rar
- 支持向量机三分类算法
- libsvm 编译后的工具包
- 支持多类的SVMRFE
- SVM-RFE算法
- 基于SVM的道路检测算法
- 手写体识别matlab代码
- 感知器与SVM分类
- scaleForLSSVM函数 matlab
- 支持向量机SVMmatlab代码
- 多种核函数的SVM分类器matlab程序
- llap twsvm
- gabor+svm matlab程序,一共三个文件,两
- SVM增量式学习的自适应与优化的MATL
- 使用matlab安装LIBSVM及读入数据集
- SVM+SFS+KNN+SBS+LASSO+SRC算法matlab版
- svm+smo matlab程序
- matlab使用libsvm进行分类代码.rar
- 粒子群PSO优化LSSVM的完整程序
- svm完成聚类功能的小程序
- 支持向量机libsvm3.22工具箱编译完成
- matlab编程实现支持向量机的多分类
- svm多分类 matlab程序
- 用MATLAB编写的svm源程序,可以实现支
- SVM+SMO实现代码
- libsvm-3.23支持向量机类库,matlab版,可
- SVM用于故障诊断的实现
评论
共有 条评论