matlab 2016 Java_MATLAB2018a与2016b分类学习模型Java库向上兼容操作

matlab2016版本无法兼容matlab2018版本Classification Learner创建的分类器

在java环境下,使用matlab2016版本调用matlab2018版本Classification Learner创建的分类器,步骤如下:

保持matlab java版本与系统版本一致,eclipse版本可不一致

1. 提取模型:使用显式函数调用模型(类似MATLAB Coder方式,因为java不支持函数句柄)

saveCompactModel(trainedModel.ClassificationEnsemble,'ClassificationLearnerModel')

model = loadCompactModel('ClassificationLearnerModel');

2. 自定义StructToModel,原因:fromStructFcn 函数句柄无法识别

% fromStructFcn = str2func(compactStruct.FromStructFcn);

obj = classreg.learning.classif.CompactClassificationEnsemble.fromStruct(compactStruct);

3. 文件覆盖:使用2018版本文件覆盖2016版本的 %MATLAB_home%\%version%\toolbox\stats\classreg 所有文件

4. 改回相应分类器的mex文件至2016版本

5. 创建jar包一次,根据java错误提示注释分类器m文件中Adapter语句

6. fromStruct无法识别,遂手动保存并读取obj文件

% fromStructFcn = str2func(compactStruct.FromStructFcn);

% obj = classreg.learning.classif.CompactClassificationEnsemble.fromStruct(compactStruct);

obj = load('obj.mat');

obj = obj.obj;

下面就能在matlab2016环境下,用matlab complier创建jar包了,经测试能正常调用matlab2018创建的分类器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值