我的MATLAB版本是2020a,在运行程序时出现了一下报错
若在运行程序时出现了以下报错:
支持向量机程序在MATLAB执行代码的时候发现有错误。
试一下help,如下图所示,SVM_L和svmtrain均找不到。
打开matlab帮助文档:
可以看到:svmtrain和svmclassify已被删除
svmtrain和svmclassification函数已被删除。请使用fitcsvm函数和ClassificationSVM的预测函数。要更新代码,请用fitcsvm替换svmtrain的所有实例,并用predict替换svmclassify的所有实例。
当然,我们可以使用新的fitcsvm函数,也可以添加包后,使用svmtrain函数。如果想继续使用svmtrain函数,请按照一下操作添加包libsvm:
Step1:
打开链接,下载libsvm包。
【免费】LIBSVM支持向量机库安装包资源-CSDN文库https://download.csdn.net/download/qq_42059684/89268262?spm=1001.2014.3001.5503
Step2:
- 下载之后就解压得到libsvm文件,并将这个文件拷贝到自己的Matlab安装路径中的toolbox文件里。
- 打开Matlab,在工具栏找到“设置路径”并添加。如下图:
这里我们只保存matlab版本即可,Python等版本删除即可。切记要先保存后,再关闭对话框。
Step3:
打开上面的libsvm文件下的matlab文件夹,在matlab命令行窗口执行
mex -setup
若报错,则需要下载编译器,并安装,安装路径不能有中文。
方法1:
点击网站后显示:
可以到这个网址查看自己的Matlab支持的编译器:
Support - System Requirements and Supported Compilers Previous Releases - MATLAB & Simulinkhttps://ww2.mathworks.cn/support/sysreq/previous_releases.html
以2020a为例,点击Details,如下图
查看版本对应的Source:
或者点击下图中版本所在年份数字,直接下载:
下载后,保存在toolbox文件夹里,并点击安装,如下图:
方法2:在 MATLAB 的“主页”选项卡上,单击附加功能-管理附加功能。在弹出窗口中,搜索术语“mingw”,然后单击“MATLAB 支持 MinGW-w64 C/C++ 编译器”。选择安装选项,然后按照安装步骤进行操作。
安装和调试完成后,再次在matlab命令行窗口执行:
mex -setup
“MEX”完成后,在matlab命令行窗口执行make。
make
“make"后,运行自己的代码就可以了。
若在运行过程出现问题:可能是程序在调用svmpredict函数时,输入输出变量个数与软件包对应的函数不一致。可参考此篇博文:
matlab predict函数并行,Matalb 智能算法第29个案例运行报错问题-CSDN博客https://blog.csdn.net/weixin_29174013/article/details/116114370?spm=1001.2014.3001.5502
问题解决,正常运行。