Borrar filtros
Borrar filtros

Embeded MATLAB function variable-size signal

3 visualizaciones (últimos 30 días)
Daniel
Daniel el 10 de En. de 2014
Comentada: mettala el 22 de Feb. de 2016
Hello all
I am simulating something on simulink that requires me to take some number as an input then
generate variable size output signal.
For example, say I have input that says 2, 14, 10.
I am supposed to create [1 by 2] vector then, [1 by 14] vector then, [1 by 10] and so on..
I know that my output variable will not exceed [1 by 10000], so I was trying to define inside function just to see if it works:
function y = fcn(u) %#codegen coder.varsize('y', [1 10000]); y = zeros(u, 1);
I also went to simulink->Edit Data then check my variable y to be variable size and I specified [1 10000], but
still it gives me an error saying:
Computed maximum size is not bounded. Static memory allocation requires all sizes to be bounded. The computed size is [:1 x ?].

Respuesta aceptada

Ryan Livingston
Ryan Livingston el 16 de En. de 2014
You can add calls to ASSERT which effectively bounds the values arguments:
function y = fcn(u)
%#codegen
N = 10000;
coder.varsize('y', [1 N]);
assert(u < N);
y = zeros(1, u);
should do the trick.
The error is effectively complaining about computing the size for the expression:
zeros(1, u);
Which, provided the information given it must assume is unbounded.
You can reference:
for more documentation on this approach.
  1 comentario
mettala
mettala el 22 de Feb. de 2016
I have somewhat similar problem as Daniel had 2 years ago. I tried to use your function with constant input of 14 (or any other value) and get the following error message:
The signal at output port 2 of 'XXX' is a variable-size signal with a nondiscrete sample time.
The sample time for any variable-size signal must be discrete.
I have changed the output to variable and size is specified [1 10000].

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Model Verification en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by