因为工作需要,要把matlab中生成好的模型转成C语言烧录到单片机中去,网上找了很久都没有找到怎么做,只好自己读matlab英文文档慢慢学,最后终于转成功了。下面记录一下步骤:
1. 这边使用的是fictree函数生成的决策树模型要转成C语言(注:这里需要看训练的模型函数转成C语言是否需要设置什么参数,否则转换不了,具体的得自己看文档,我的fitctree就必须设置ScoreTransform为none以及Surrogate为off,生成的模型才可以转成C语言),这里的tree是我已经训练好的模型2. 在命令行窗口输入saveLearnerForCoder函数将自己的模型保存为文件,用法如下:
saveLearnerForCoder(tree, 'FMRtree')
第一个参数为输入的模型,第二个参数为你要保存的文件名
3. 编写函数文件调用模型,这一步是为了给Matlab Coder转化使用,调用模型的函数为loadLearnerForCoder
4. 打开Matlab Coder工具,转换成C语言或者C++,这里就不再赘述,这一步往上一抓一大把,直接搜matlab转C语言就好了。不过它最后一步可以选择转换的语言要部署在哪一个平台上,这个还是比较牛逼的,还有ROS系统。