Matlab下,libsvm报错:svmtrain已删除
安装libsvm后运行代码svmtrain函数时候提示svmtrain已被删除, 请改用fitcsvm解,提示和matlab以前版本函数冲突导致,不处理该提示也可正常运行。2.打开libsvm下matlab文件夹,将svmtrain.c文件改名为libsvmtrain.c,将svmpredict.c改名为libsvmpredict.c。将svmtrain替换为libsvmtrain,svmpred
·
版本:libsvm3.3
Matlab:R2019b
安装libsvm后运行代码svmtrain函数时候提示svmtrain已被删除, 请改用fitcsvm解,提示和matlab以前版本函数冲突导致,不处理该提示也可正常运行。
libsvm中的svmtrain可能与matlab自带的svmtrain 冲突了。
解决方案:
1.打开libsvm下matlab文件夹,找到make.m文件。
% This make.m is for MATLAB and OCTAVE under Windows, Mac, and Unix
function make()
try
% This part is for OCTAVE
if (exist ('OCTAVE_VERSION', 'builtin'))
mex libsvmread.c
mex libsvmwrite.c
mex -I.. svmtrain.c ../svm.cpp svm_model_matlab.c
mex -I.. svmpredict.c ../svm.cpp svm_model_matlab.c
% This part is for MATLAB
% Add -largeArrayDims on 64-bit machines of MATLAB
else
mex -largeArrayDims libsvmread.c
mex -largeArrayDims libsvmwrite.c
mex -I.. -largeArrayDims svmtrain.c ../svm.cpp svm_model_matlab.c
mex -I.. -largeArrayDims svmpredict.c ../svm.cpp svm_model_matlab.c
end
catch err
fprintf('Error: %s failed (line %d)\n', err.stack(1).file, err.stack(1).line);
disp(err.message);
fprintf('=> Please check README for detailed instructions.\n');
end
替换为:
% This make.m is for MATLAB and OCTAVE under Windows, Mac, and Unix
function make()
try
% This part is for OCTAVE
if (exist ('OCTAVE_VERSION', 'builtin'))
mex libsvmread.c
mex libsvmwrite.c
mex -I.. svmtrain.c ../svm.cpp svm_model_matlab.c
mex -I.. svmpredict.c ../svm.cpp svm_model_matlab.c
% This part is for MATLAB
% Add -largeArrayDims on 64-bit machines of MATLAB
else
mex -largeArrayDims libsvmread.c
mex -largeArrayDims libsvmwrite.c
mex -I.. -largeArrayDims libsvmtrain.c ../svm.cpp svm_model_matlab.c
mex -I.. -largeArrayDims libsvmpredict.c ../svm.cpp svm_model_matlab.c
end
catch err
fprintf('Error: %s failed (line %d)\n', err.stack(1).file, err.stack(1).line);
disp(err.message);
fprintf('=> Please check README for detailed instructions.\n');
end
将svmtrain替换为libsvmtrain,svmpredict替换为libsvmpredict。
2.打开libsvm下matlab文件夹,将svmtrain.c文件改名为libsvmtrain.c,将svmpredict.c改名为libsvmpredict.c。
3.在Matlab中执行
mex -setup
make
4.执行成功后,svmtrain方法名便改为libsvmtrain,即可去除错误提示。
更多推荐
已为社区贡献1条内容
所有评论(0)