在MATLAB平台使用libsvm工具箱中python脚本训练SVM分类器

第一步:前期准备:安装MATLAB,python,libsvm

libsvm资源
确保matlab,python环境安装与设置完毕,可以执行操作。

第二步:将保存为*.mat的数据转换为libsvm可接受数据类型

参考libsvmFAQ
在这里插入图片描述

第三步:检查grid.py与easy.py内可执行文件路径是否正确

注:如果着急完成任务,可以忽略(1)(2)两点,直接修改路径。

(1)首先你需要一个Visual Studio Code来更高效的阅读和修改python代码
(2)如果没有python基础,你看文件会因为无从下手而头疼。这时你需要一份整理良好的python教程作为字典。
(3)grid.py检查位置在:

is_win32 = (sys.platform == 'win32')
if not is_win32:
	svmscale_exe = "../svm-scale"
	svmtrain_exe = "../svm-train"
	svmpredict_exe = "../svm-predict"
	grid_py = "./grid.py"
	gnuplot_exe = "C:\Program Files\gnuplot\bin\gnuplot"
else:
        # example for windows
	svmscale_exe = r"..\windows\svm-scale.exe"
	svmtrain_exe = r"..\windows\svm-train.exe"
	svmpredict_exe = r"..\windows\svm-predict.exe"
	gnuplot_exe = r"C:\Program Files\gnuplot\bin\gnuplot.exe"
	grid_py = r".\grid.py"

第四步:在windows命令行窗口执行python脚本确认修改完毕

(1)打开windows命令行窗口
(2)用cd命令切换到脚本所在文件夹
(3)先试grid.py,再试easy.py
grid.py调用格式可以看readme文件,没有特殊需要直接用缺省设置

Microsoft Windows [版本 10.0.18362.778]
(c) 2019 Microsoft Corporation。保留所有权利。

C:\Users\董志亮>cd /d D:\MATLAB\R2016a\toolbox\libsvm-3.24\tools

D:\MATLAB\R2016a\toolbox\libsvm-3.24\tools>python grid.py D:\MATLAB\R2016a\toolbox\libsvm-3.24\matlab\coordinate_sample

第五步:在matlab中编写函数实现调用windows命令行并将输出返回到matlab中

(1)关键函数system(),代码如下:

% 在系统命令行使用脚本
function [result,status] = python(varargin)
%命令字符串
cmdString='python';
for i = 1:nargin
    thisArg = varargin{i};
    if isempty(thisArg) || ~ischar(thisArg)%参数空或不是字符串
        error('All input arguments must be valid strings.');
    elseif exist(thisArg)==2 %这是一个在Matlab路径中的可用的文件
        if isempty(dir(thisArg))
            %得到完整路径
            thisArg = which(thisArg);
        end
    elseif i==1
        % 第一个参数是Python文件 - 必须是一个可用的文件
        error(['Unable to find Python file: ', thisArg]);
    end
    
    % 如果thisArg中有空格,就用双引号把它括起来
    if any(thisArg == ' ')
          thisArg = ['"', thisArg, '"'];
    end
    % 将thisArg加在cmdString后面
    cmdString = [cmdString, ' ', thisArg];
end
%发送命令
[status,result]=system(cmdString);
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值