Maximum size of output not bounded in matlab function block for linspace error

조회 수: 3 (최근 30일)
I am using matlab function block in simulink and need to use linspace for use in my function. When I run the model, I get an error saying "Computed maximum size of the output of function 'linspace' is not bounded. Static memory allocation requires all sizes to be bounded. The computed size is [1 x :?]." How do I get around this? The code where I use linspace is below where 'd't is a single value calculated earlier in the model and is imported into the block and 'n' is a constant coming from a constants block.
vec = linspace(0,dt,n)

채택된 답변

Honglei Chen
Honglei Chen 2017년 11월 7일
You said the value n is from a constant block, so do you ever need to change it? If the answer is no, then you can consider hard code it in the function. If you want to be able to change it from time to time but never need to change it during the model running, then you can also consider set it up as a nontunable dialog parameter so the engine knows that your vec has a fixed size.
HTH
  댓글 수: 4
Andrew Poissant
Andrew Poissant 2017년 11월 7일
You are right! My bad. But why would Simulink give me an error using a constants block? I preset the block to a value of 8 and do not change it so shouldn't Simulink know the size?
Honglei Chen
Honglei Chen 2017년 11월 7일
All MATLAB Function block knows is that this value is coming from the input, it has no idea whether the previous block is a constant or not so it has to prepare for the worst case. (Besides, even for a constant block, I believe you can still tune the parameter during the simulation)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Sources에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by