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

Posted estivalinp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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% oolboxstatsclassreg 所有文件

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创建的分类器。

以上是关于MATLAB2018a与2016b分类学习模型Java库向上兼容操作的主要内容,如果未能解决你的问题,请参考以下文章

相关向量机 (RVM) -Matlab

matlab2016b -ubuntu 1604 -install- and -trouble -shooting--finally-all is ok!!

ubuntu matlab2018a

Matlab2018a,英文正式版破解文件 libmwlmgrimpl.dll

网关功能缺失 -->Matlab 2018a -->Mex

Matlab R2018a版离线使用帮助文档方法