zoukankan      html  css  js  c++  java
  • MATLAB知识-解决因缺少libsvm 而运行出现Y must be a vector or a character array.

    matlab版本R2014b

    最近运行一个使用svmtrain的程序,出现以下错误:

     这是因为是在设定路径里面没有libsvm。辛亏有一位师姐的电脑里面有libsvm的包,我直接用了,这样就不需要下载了。

    图示:

    打开后文件夹后里面包含:

     那么问题是:我们在MATLAB中怎么把这个包添加到路径中呢:

    解决办法(已有libsvm工具包,英文版MATLAB):

    1.点击Matlab左上角的file,选择set path
    2.在弹出的选项框中,选择第二个选项And with Subfolders
    3.找到你的libsvm文件夹,点确定
    4.点击save,关闭set path

    (中文版MATLAB)

    1.点击Matlab左上角的主页,选择设置路径


    2.在弹出的选项框中,选择第二个选项:添加并包含子文件夹

    3.找到你放的libsvm文件夹(放在哪里无所谓),点确定

    4.点击保存,再点击关闭该窗口

     这样就解决了。

    解决办法2(没有libsvm工具):这是参考别的博客的,看着挺麻烦的,大家最好有一个县城的libsvm包。直接设置路径就好了。
    1、下载libsvm包,链接为:https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/

    2、使用解决办法1中的步骤设置路径

    3、编译
    3.1、在matlab命令行中输入mex -setup -v 查看一下电脑中有什么编译器。
    3.2、若是能找到c++编译器,可直接尝试在命令行窗口输入make,执行make.m程序进行编译,完成后出现4个后缀为.mexw64文件,即为安装成功。若出现报错,见步骤4。
    3.3、若没能找到C++编译器,见步骤5。

    4、3.2编译报错解决方法
    4.1、Win10系统下使用libsvm,需要将make.m文件下的CFLAGS 替换成COMPFLAGS****。
    4.2、在操作了4.1后仍然报错,错误提示为svm相关文件在对应路径找不到,把libsvm包里面的相应文件copy到对应位置即可。

    5、3.3中的问题解决方法为:
    5.1、下载tdm-gcc,网址为:http://tdm-gcc.tdragon.net/download。注意,下载对应自己电脑位数的装载程序,否则可能在安装的时候会报错。
    5.2、装载tdm-gcc,在系统环境变量中添加该程序的安装路径
    5.3、在matlab命令行中输入:setenv(‘MW_MINGW64_LOC’,folder),folder为TDM-GCC的安装位置,要加单引号。此时mex可以正常使用,不然重启matlab即可。
    5.4、按照操作3.2步操作即可
    第5步操作若还有疑问,可参看网站

  • 相关阅读:
    关于架构,关于系统,关于合作,我也得问问我们自己
    vs2013 无法打开 源 文件 "SDKDDKVer.h"
    视频基础知识汇总
    python gRPC接口调用
    python多线程同时执行2个函数任务之threading
    git基本操作_快速查询
    pycharm激活码 我是搬运工
    CodeReview的一些原则
    python多线程执行同一个函数任务之threading、ThreadPoolExecutor.map
    python程序超时处理 timeout_decorator
  • 原文地址:https://www.cnblogs.com/MINGYOUR/p/11983577.html
Copyright © 2011-2022 走看看