matlab2013a(x64) 安装 libsvm

来源:互联网 发布:一键转发源码 编辑:程序博客网 时间:2024/05/24 01:42

‘# 原谅我花费一点篇幅写我的第一篇csdn博客 #
每次装软件的过程都很崎岖,需要查阅大量资料,花费大量时间。有时候装个软件可能要在挫折中花费三四天的时间!多么痛的领悟。
在这里,要感谢那些分享过自己经验的人,也是帮了我很大的忙。
受到启发,于是我打算也分享自己在学习工作中解决这些难题的经验,希望对大家有所帮助。


ok,下面正式开始这篇博客的内容


这篇博客主要是

matlab2013a(x64)版本安装libsvm的教程

以及回答我在安装libsvm过程中遇到的问题

时间: 2016 - 05 - 24
环境及工具: win10(x64) + matlab2013a(x64) + libsvm-3.17

安装流程

(32位的朋友,注意这个安装流程不适合你们,原因下面有提及)

一、下载libsvm-3.17
http://download.csdn.net/detail/wzh_xwjh/5648969
该版本是 2013年4月更新的。(千万不要下载最新版,原因在后面)

二、解压libsvm到matlab安装目录的/toolbox文件下
我的解压路径是:C:\Program Files\MATLAB\R2013a\toolbox
(当然也不是一定要解压在这,只是规范,看名字就知道 matlab的工具箱都装在这个文件夹)

三、添加matlab搜索路径
在matlab命令行中输入:pathtool
然后就把libsvm的路径添加进去,
我的路径是:C:\Program Files\MATLAB\R2013a\toolbox\libsvm-3.17\libsvm-3.17\windows

这里写图片描述

四、安装流程结束,测试
在matlab命令行中输入:libsvmread(‘test.txt’)【错误用法,只是我用来测试】
如果显示如下,那么恭喜你可以正常使用了。以下内容你就可以不用看了。
这里写图片描述

上述是安装顺利的情况,3步搞定,但事情往往没有这么简单!
下面是我碰到过的问题。

安装过程遇到的问题

问题1、报错:Undefined function ‘libsvmread’ for input arguments of type ‘char’.

分析:这个问题主要是没设置搜索路径或者搜索不到。

解决方法:如果没有设置过,用命令pathtool添加libsvm工具箱所在目录。如果已经设置,检查’libsvmread’是否输入有错以及文件路径设置是否正确。

问题2、报错:Invalid MEX-file ‘C:\Program
Files\MATLAB\R2013a\toolbox\libsvm-3.21\windows\libsvmread.mexw64’:
找不到指定的程序。

分析:这个问题困扰了我很久。下面是官网解释这个错误的说法

这里写图片描述

官网说了,凡是 Invalid MEX-file :The specified module could not be found. 这种问题都是依赖关系出了问题。给出的解决方法是叫我们安装好依赖库,和设置好系统路径。
然而路径我是正确的,文件我也是有的,还是“找不到指定程序”!!!略坑。仔细思考后我开始寻找问题所在。于是

解决方法:

  1. 我首先检查是否matlab与系统版本不一致,导致.mexw64文件无法使用。
    这里告诉个小技巧:
    64位的软件默认安装在C:\Program Files
    32位的软件默认安装在C:\Program Files(x86)
    检查后发现我的matlab和系统都是64位的,版本不一致排除

  2. 检测是否路径的问题。
    我把路径故意设置错,发现报错与问题1一样,设置正确的路径报错则与问题2一样,明显,与路径无关,排除。

  3. 接着我怀疑可能原来下载下来的4个.mexw64文件有错,无法使用。
    这里要说明一下了。其他libsvm安装教程中都会提到要自己编译这4个文件。但其实,打开/libsvm/matlab/文件中的README文件可以看到
    “On Windows systems, pre-built binary files are already in the
    directory ‘..\windows’, so no need to conduct installation. Now we
    provide binary files only for 64bit MATLAB on Windows.”
    所以我们的安装过程就没有了什么make、mex -setup这些编译过程。
    但是32位以及非windows的朋友你们的安装流程就需要多编译这一步了。

    但现在情况不一样,我们怀疑这些文件有问题所以需要这个步骤。然而这里我又遇到3个问题,但只解决了2个。
    1.无法找到编译器。解决:按提示下载软件,我下的是vs2013编译器。(结果显示这是错误的选择)
    2.matlab2013不支持vs2013。解决:这里我找到了可以关联两个软件的链接文件。
    3.仍然无法编译(make/mex - setup编译不出.mexw64文件)。未解决

  4. 上面解决方法仍没解决问题,于是我继续查找资料。皇天不负有心人,让我看到一句话大概这么个意思“附带的.mexw64文件是用vs最新版本的编译器编译出来的,matlab2013不支持这些文件”。看到这我感动得差点流下眼泪。没错,直觉告诉我就是它了!于是我下载了libsvm-3.17!终!于!成!功!了!
    (感谢上天,我差点就放弃了)

总结:

  1. 不抛弃不放弃!
  2. 善用下载附带的文档!(libsvm附带的文档,虽然是英文的,但对安装使用都很有帮助,强烈建议阅读一下)
  3. 珍爱生命,远离百度,多用Google!(用过都知道,google的搜索算法真心甩百度几条街,若不是屈服于网速,我都不想用百度)
0 0
原创粉丝点击