Subscripting into an mxArray

Illustration
tanneer - 2020-12-15T13:01:47+00:00
Question: Subscripting into an mxArray

given below is a part of the code i am writing for kalman filter but got error while converting from .m to .c/.c++   white_gauss=wgn(1,37000,20); q1=cov(white_gauss); q2=cov(white_gauss); q3=cov(white_gauss); loop_count=12; L=loop_count; Q=[q1(L) q2(L) q3(L)] and got following error while converting from .m to .c using matlab coder.   "Subscripting into an mxArray is not supported. " how to avoid it?

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

That is the error you get when you use coder.extrinsic and fail to declare the output before calling the extrinsic function. If you only want to pass the output to extrinsic functions, you don't have to, but if you want to index into the result, you have to pre-define its size and type. For example, suppose foo(x) returns a result with the same size and type as x. Then you could write

 

y = x;
y = foo(x);

Or if foo always returns a 4-by-1 array of int32's, you would write

y = zeros(4,1,'int32');
y = foo(x);

This tells the compiler how to deconstruct the data structure that comes back from MATLAB when the function foo is called with x as input


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!