matlab移植linux qt总结 (未实现)(21.8.25 已另寻别径)

最近在做matlab 编好程序最后移植到linux qt上

1、第一个遇到的问题:

无论怎么弄,都显示打包期间出错,原因:没有安装与matab版本对应的vs版本,具体matlab支持的vs脚本,可以在日志中看或者,重新安装相应版本的vs就可以了。

 参考:(14条消息) Window上,Matlab安装libsvm,libsvmtrain.mexw64无效,mex-setup 失败_TIME_LEAF的博客-CSDN博客

https://blog.csdn.net/yanhuatangtang/article/details/107838340 这个教如何看日志

2、从matlab转linux qt遇到很多问题,首先,有一些函数是matlab自带的,就不能够支持生成c++代码,Function XXXX not supported for code generation.百度了得加上这句话coder.extrinsic('cell2mat')现在还不懂为啥。原文地址:https://ww2.mathworks.cn/matlabcentral/answers/687153-function-xxxx-not-supported-for-code-generation

https://stackoverflow.com/questions/25527248/matlab-coder-num2str-not-supported这个说了怎么移植num2str

3、Undefined function or variable 'XXX'. The first assignment to a local variable determines its class.这个错误是 在matlab的函数中,所有变量第一次使用之前都得初始化。比如temp = zeros(len,1);https://blog.csdn.net/youyingbo/article/details/107491585这篇博客是用的将vmd移植到qt

https://ww2.mathworks.cn/matlabcentral/answers/39191-undefined-function-or-variable-the-first-assignment-to-a-local-variable-determines-its-clas#answer_338798这个是官方给的解决方法

4、Output argument 'XXX' is not assigned on some execution paths. 出现这类错误是因为,输出参数并给定初始值,只需要在此程序的最前面加上参数的初始值就可以了。

原文地址:https://blog.csdn.net/qq_39915672/article/details/115701524

5、Unexpected MATLAB operator.

意思是你用的操作符不对,比如说不能用.的时候你用了,反正就是各种操作符号的用法没有符合正确用法,要看年你的具体问题了。比如你要对一个不是矩阵的东西,比如说cell来用.*这类。

意思是MATLAB不支持你所提供的运算符。MATLAB的命令窗口有指向出错行的链接,首先有没有输入错误,然后确认是否存在非ASCII字符,比如中文输入法中输入的字符。

官网的回答:https://ww2.mathworks.cn/matlabcentral/answers/471014-error-unexpected-matlab-operator?matlab_tid=prof_contriblnk

6、Error: "Expected either a logical, char, int, fi, single, or double. Found an mxArray."

官网的解答:https://ww2.mathworks.cn/matlabcentral/answers/62828-error-expected-either-a-logical-char-int-fi-single-or-double-found-an-mxarray

7、matlab中建立函数

function xx[out1,...outn]=函数名[in1,...,in2]

end

8、目前还遇到的问题:(1)load只在matlab中使用,不知道在c++上如何使用

(2)目前虽然添加了coder.extrinsic可以编译通过 但是不知道添加这个函数的含义是什么,还有也不知道实际中能不能够使用。

(3)还未真正理解移植的意义

生产一个例子参考:(14条消息) MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_hustcxl的博客-CSDN博客

转换过去例子参考:(14条消息) MATLAB R2017a的Coder工具使用实例-m语言转C++在linux Qt下运行(之一)_hustcxl的博客-CSDN博客

参考:matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客

2021.8.25

最后觉得不使用这条道路,因为matlab许多自带库函数不支持生成c,因此处理起来非常复杂,目前打算直接从c++进行开发。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值