Filter löschen
Filter löschen

Subscripting into an mxArray

35 Ansichten (letzte 30 Tage)
ECE09 ITBHU
ECE09 ITBHU am 8 Aug. 2011
Kommentiert: gaoliming gao am 19 Mai 2020
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?

Akzeptierte Antwort

Mike Hosea
Mike Hosea am 9 Aug. 2011
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. -- Mike
  5 Kommentare
zeng xiao
zeng xiao am 11 Apr. 2017
您好哦,您的问题解决了吗?我也遇到了相同的问题,您可以顺便为我解答一下吗?
gaoliming gao
gaoliming gao am 19 Mai 2020
Initialize the variable before use it, for example y = zeros(4,1);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Coder finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by