Window上,Matlab安装libsvm,libsvmtrain.mexw64无效,mex-setup 失败

根据个人经验,这个问题注意以下几点即可解决。

1、软件版本问题

首先要认清自己Matlab的版本,这与第二个问题密切相关。

2、编译器问题

在Matlab的命令行中输入,mex -setup

如果正常执行,会跳出编译器选项给你选择。如果没有编译器,则会告诉你没有合适的编译器。

那么,如果没有编译器,就需要下载安装一个。

下载安装前,请到以下网址查看自己的Matlab支持哪些编译器。

https://ww2.mathworks.cn/support/sysreq/previous_releases.html

不同版本的Matlab支持的编译器是不同的,例如

我们可以看到Matlab2014a对于VS只支持到2013。因此我虽然装了VS2017,但也用不上,所以又装了一个VS2013才解决。

3、重新编译文件

将Matlab的文件路径设置为F:\libsvm-3.22\matlab(此处用的是我的盘符),即进入libsvm软件包的matlab文件夹。

安装好编译器后,在命令行输入 mex -setup 。

接着在命令行输入 make

等文件编译好后,你会发现在libsvm软件包的matlab文件下多出了一些文件,主要是

'libsvmread.mex', 'libsvmwrite.mex', 'svmtrain.mex',和'svmpredict.mex'

简单粗暴一点,全部复制。

粘贴到F:\libsvm-3.22\windows,即粘贴到libsvm软件包的windows文件夹中,报重复则替换。

最好将'svmtrain.mex',和'svmpredict.mex'重命名为libsvmtrain.mex和libsvmpredict.mex,避免和Matlab自带的重名。

4、测试

[heart_scale_label,heart_scale_inst] = libsvmread('F:/libsvm-3.22/heart_scale');
model = libsvmtrain(heart_scale_label,heart_scale_inst,'-c 1 -g 0.07');
[predict_label, accuracy,dec_values] = libsvmpredict(heart_scale_label,heart_scale_inst,model);

结果为

*
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)

到这,libsvm就能正常使用了。

5、一些小发现

a.其实,libsvm-3.22中已经为我们编译好了文件,但不知为何就是用不了,会出现libsvmtrain.mexw64无效的错误。所以,我们需要重新编译。

b.我起初觉得再装一个VS2013觉得麻烦,就在朋友电脑上编译了下,再把文件拷过来,结果在我电脑上能用。可是换另一台就不能用了,Matlab的版本是一样的,但是Windows的版本不一样,所以应该和系统版本也有关系。

c.所以还是不偷懒了,哪台电脑用,就在哪台电脑上编译。

希望对大家有帮助!

 

 

根据引用和引用的信息,出现这个错误是因为make.m文件在D:\libsvm\libsvm-3.21\matlab目录下执行失败。可以尝试将四个文件复制到D:\libsvm\libsvm-3.21\Windows目录下解决这个问题。这样做的目的是确保这四个文件可以被正确加载。 此外,根据引用的信息,还需要确认libsvm库已经成功下载并导入到Matlab中。在Windows系统中,应该包含libsvm的四个exe程序包。确保这些程序包已经正确安装和配置。 如果上述步骤都已经成,但仍然出现错误"MEX 文件 'D:\MATLAB\R2021b\toolbox\libsvm-3.32\matlab\svmtrain.mexw64' 无效: 动态链接库(DLL)初始化例程失败",可能是由于DLL文件初始化失败引起的。这可能是由于缺少依赖项或者与系统环境设置有关。 为了解决这个问题,可以尝试以下几个步骤: 1. 确保操作系统和Matlab版本的兼容性。 2. 检查是否缺少某些依赖项。可以尝试安装或更新相应的依赖库。 3. 检查系统环境变量设置是否正确。确保所有必要的路径都已正确配置。 4. 尝试重新编译或重新安装libsvm库。 希望这些解决方法能够帮助您解决问题。如果问题仍然存在,请参考相关文档或寻求专业支持。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [libsvmmatlab中遇到的问题总结](https://blog.csdn.net/weixin_38300566/article/details/80375703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux在秋名山

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值