笔者在使用Codegen转换Matlab代码时,Codegen无法确定输出矩阵size,而使得转换后的C++代码输入量被迫包含了各输出矩阵的size,导致输入十分繁琐。
最终定位到问题的产生原因是:
MatlabFunction在将多输出矩阵(例如:输出A,B)的函数转换为单独的m文件时,m文件中产生了过程量(A=0,B=0),这使得Codegen将无法确定输出矩阵的具体形状,使得转换后的C++代码无法确定本应该是固定值的矩阵形状。
解决办法:
将多个输出矩阵合并为一个矩阵,这样m文件将不会产生过程量(A=0,B=0),Codegen就可以确定输出矩阵的具体形状,从而解决问题。