红色字体表示是自己输入的,背景为红色表示为错误的做法(试误过程)。
能成功按以下步骤安装的前提是:电脑上装有完整的Microsoft Visual studio 2010专业版,即保证有相应的编译器和SDK;matlabR 2010b的成功安装。并将Libsvm(3.17)载入到matlab当前路径下,采取以下操作。
>> mex -setup
Please choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Visual C++ 2010 in E:\VS2010
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Visual C++ 2010
Location: E:\VS2010
Are these correct [y]/n? y
***************************************************************************
Warning: MEX-files generated using Microsoft Visual C++ 2010 require
that Microsoft Visual Studio 2010 run-time libraries be
available on the computer they are run on.
If you plan to redistribute your MEX-files to other MATLAB
users, be sure that they have the run-time libraries.
***************************************************************************
Trying to update options file: C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2010b\mexopts.bat
From template: E:\matlab\bin\win64\mexopts\msvc100opts.bat
Done . . .
**************************************************************************
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9
Building with the -largeArrayDims option enables the new API.
**************************************************************************
>> make
>> load heart_scale
??? Error using ==> load
Number of columns on line 2 of ASCII file
E:\matlab\toolbox\libsvm-3.17\heart_scale
must be the same as previous lines.
>> [heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
can't open input file heart_scale
>> [heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');
??? Undefined function or method 'libsvmread' for input arguments of type
'char'.
>> [heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');
>> model=svmtrain(heart_scale_label,heart_scale_inst,'-c 1 -g 0.07');
*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
>> [predict_label,accuracy,dec_values]=svmpredict(heart_scale_label,heart_scale_inst,model);
Accuracy = 86.6667% (234/270) (classification)
>>