MATLAB Answers


trackingKF code generation error: Inner dimensions must agree

Asked by Hien Nguyen on 8 Jan 2018
Latest activity Answered by Trevor Roose on 10 Jan 2018
This is an extension to the question here. When I try to generate code, during the trial code generation I get the following in the trackingKF constructor: Inner dimensions must agree. Generated code for a general matrix multiplication at this call site. If this should have been a scalar times a variable-size matrix, the scalar input must be fixed-size.
All of my arguments to the constructor have a fixed size, and when I run my methods through matlab, which runs fine, the sizes match up. A: 8x8 double H: 4x8 double state: 8x1 double stateCov = 8x8 double MeasurementNoise = 4x4 double Q = 8x8 double Here is the constructor that code generation fails on: filter = trackingKF(... A, ... H, ... 'State', state, ... 'StateCovariance', stateCov, ... 'MeasurementNoise', Detection.MeasurementNoise, ... 'ProcessNoise', Q);


Hi Hien,
I just wanted to say that we are investigating the problem you are running into. If you can share your code with us, please do so. It will help with the investigation.
Thank you,
Here is a zip of my files with the code gen project in there. Thanks for looking into this.

Sign in to comment.

1 Answer

Answer by Trevor Roose on 10 Jan 2018
 Accepted Answer

Hi Hien,
Thank you for reporting this problem. While the problem is still being investigated, one solution is to use trackingEKF instead of trackingKF. trackingEKF can be configured to behave exactly like trackingKF.
The attached zip file contains your code modified to use trackingEKF.


Sign in to comment.