Windows10上安装matlab并配置libsvm心得

Windows10上安装matlab并配置libsvm的步骤:

一:选择编译器

1.打开 matlab

键入mex -setup (这里出现问题1)

(因为用libsvm需要选择一个编译器,这是选择编译器的第一步)

2.出现提示语句

Please choose your compiler for buildingMEX-files:

Would you like mex to locate installedcompilers [y]/n?

键入n

出现提示语句

Select a compiler:

[1] Intel C++ 11.1 (with MicrosoftVisual C++ 2008 SP1 linker)

[2] Intel Visual Fortran 11.1 (withMicrosoft Visual C++ 2008 SP1 linker)

[3] Intel Visual Fortran 11.1 (withMicrosoft Visual C++ 2008 Shell linker)

[4] Lcc-win32 C 2.4.1

[5] Microsoft Visual C++ 6.0

[6] Microsoft Visual C++ 2005 SP1

[7] Microsoft Visual C++ 2008 SP1

[8] Microsoft Visual C++ 2010

[9] Microsoft Visual C++ 2010 Express

[10] Open WATCOM C++

[0] None

(因为不同电脑的环境不同,所以选项也有不同,这里出现问题2

 

3.选择编译器,选择Microsoft Visual C++ 2010

即键入8

出现提示语:

Please verify your choices:

Compiler: Microsoft Visual C++ 2010

Location: C:\Program Files\MicrosoftVisual Studio 10.0

Are these correct [y]/n?

4.键入y

出现提示语:

Trying to update options file:C:\Documents and Settings\zhangduokun\ApplicationData\MathWorks\MATLAB\R2011a\mexopts.bat

From template:             C:\PROGRA~1\MATLAB\R2011a\bin\win32\mexopts\msvc100opts.bat

Done . . .

(编译器选择完成)

二:配置libsvm,即编译

1.下载http://www.csie.ntu.edu.tw/~cjlin/libsvm/

2.将下载的libsvm压缩包解压到MATLAB\R2011a\toolbox\目录下。

3.打开matlab,左上角fileàset path, 点击add添加在第2步解压的libsvm的路径

àsaveàclose

4.将当前matlab的工作路径设置为MATLAB\R2011a\toolbox\libsvm-3.12\matlab

5.键入make

在左侧的窗口出现四个svmtrain.mexw32svmpredict.mexw32libsvmread.mexw32libsvmwrite.mexw32文件

三:测试

为了检验 libsvm matlab之间的接口是否已经配置完成,可以在 matlab下执行以下命令:

1.键入load heart_scale(出现问题3

完成该步骤后发现Workspace中出现了heart_scale_inst heart_scale_label,说明正确

2.键入model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');

 [predict_label, accuracy, dec_values] =svmpredict(heart_scale_label, heart_scale_inst, model);

3.输出

Accuracy = 86.6667% (234/270)(classification)(234/270)(classification)

如果运行正常并生成了model这个结构体(其中保存了所有的支持向量及其系数),那么说明 libsvmmatlab 之间的接口已经完全配置成功。

 

问题1

键入mex -setup出现如下错误

自己安装的matlab版本太高,matlab找不到支持的编译器,建议下载一个低版本的matlab(自己在这里浪费了很多时间,刚开始安装的是matlab2014a中文版,还以为是中文的原因,重新安装了matlab2105a,试了之后还是不行,我试了各种办法,点击网址链接下载jdk,安装jdk的时候把系统自带的VC2010卸载了,最后发现jdk支持window7而我是window10jdk失败后尝试编译器的安装,虽然之前电脑上有VS2015社区版,但还是行不通,最后把VS卸载了,后来才明白VS社区版和matlab不兼容,然后安装VC++,费了很大劲安装上VC++mex -setup还是不行,我都要崩溃了,老师提醒我:matlab高版本和windows10不兼容的问题matlab和编译器不兼容的问题,jdk不兼容的问题,framework.net 4.0的问题等等很多要考虑的问题,在网上搜也搜不到什么。学长给我matlab2010绿色版,解压缩后在bin目录下打开matlab就能用mex -setup终于成功了)

问题2

没有 Microsoft visual C++选项

因为电脑上没有VC++VS。看自己电脑上有没有安装VC++vs没有的话建议安装VC++(方便),有的话请卸载,重新安装(最好VC++),安装完成并且能够成功运行代码后重新启动matlab,再次键入mex setup就好了

问题3

(可能会出现找不到heart_scale文件,这时把libsvm目录下的heart_scale拷贝到libsvm目录下的matlab中。)

出现错误:

>> load heart_scale;

??? Error using ==> load

Number of columns on line 2 of ASCIIfile D:\matlib\matlab\matlab\toolbox\libsvm-3.21\heart_scale

must be the same as previous lines.

键入[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');

再键入load heart_scale;

 

在配置libsvm失败很多次后我以为是windows10matlab因为jdk不同才不能用的,当我用低版本的matlab成功后发现不是这个原因,然后我也不知道为什么高版本的matlablibsvm不能再windows10上用,如果有人知道,请解释一下。现在想想,虽然失败很多次,都有放弃的想法,都是因为自己在遇到困难时不能静心想想,分析原因,想想那种方案还没有试过,仅仅只是瞎猫碰死耗子,看到网址让下载什么,安装什么,就做什么;还有很重要的一点,要看安装提示,错误提示,网页搜出来的提示,这些提示再枯燥也不能忽略。

不能冲动,不能心急,要有耐心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会为您介绍如何使用Matlab安装配置libsvm以及一个svm分类实例。 步骤1:下载libsvm 首先,您需要从libsvm官网下载所需的libsvm版本。下载链接为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载完成后,您需要解压缩文件。 步骤2:添加libsvmMatlab路径 打开Matlab,选择"Set Path"选项,然后添加libsvm文件夹路径。这样libsvm的函数就可以被Matlab调用了。 步骤3:准备数据 为了演示如何使用libsvm分类器程序,我们需要准备一些数据。在这个例子中,我们将使用UCI的Iris数据集。您可以从以下链接下载数据集:https://archive.ics.uci.edu/ml/datasets/iris 步骤4:加载并处理数据 使用Matlab的load函数加载数据,然后将数据分为训练集和测试集。在这个例子中,我们将使用70%的数据作为训练集,30%的数据作为测试集。 ```matlab % Load iris dataset load iris.mat % Split data into training and testing sets (70/30 split) [trainIdx,testIdx] = dividerand(size(iris,1),0.7,0.3); trainData = iris(trainIdx,:); testData = iris(testIdx,:); ``` 步骤5:使用libsvm分类器 我们将使用libsvm中的svmtrain函数训练一个线性SVM模型,并使用svmpredict函数进行预测。以下是完整的Matlab代码: ```matlab % Load iris dataset load iris.mat % Split data into training and testing sets (70/30 split) [trainIdx,testIdx] = dividerand(size(iris,1),0.7,0.3); trainData = iris(trainIdx,:); testData = iris(testIdx,:); % Train a linear SVM model model = svmtrain(trainData(:,end),trainData(:,1:end-1),'-t 0'); % Make predictions on the testing set [predicted_label, accuracy, decision_values] = svmpredict(testData(:,end),testData(:,1:end-1),model); ``` 在上面的代码中,我们首先使用svmtrain函数训练一个线性SVM模型,然后使用svmpredict函数对测试集进行分类,并输出预测准确率和决策值。 希望这个简单的例子能帮助您了解如何使用libsvm进行分类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值