Problem with matlab function block.

3 ビュー (過去 30 日間)
dimitris
dimitris 2012 年 2 月 5 日
コメント済み: Yanbo 2013 年 10 月 17 日
I use a matlab function block in my simulink model and when i read a variable(for example N) from a file i get an error, but if i write N=2 it works fine. The problem is that i have to read this variable from a file. The error is : "Computed maximum size is not bounded. Static memory allocation requires all sizes to be bounded. The computed size is [:? x 1] Function 'MATLAB Function' : B=zeros(N,1,'double')". Any ideas are welcome. Thank you in advance.

採用された回答

Kaustubha Govind
Kaustubha Govind 2012 年 2 月 6 日
The MATLAB Function block does not allow dynamic sizing of variables. The best you can do is figure out a maximum size for your variable, and then declare it as follows:
coder.varsize('B', [128 1]);
B = zeros(N, 1);
  1 件のコメント
Yanbo
Yanbo 2013 年 10 月 17 日
Hi Kaustubha,
Can coder.varsize be replaced by eml.varsize ? I am not quite sure about the difference between the two, and what toolbox shall I download to enable coder, as currently my matlab doesn't support coder.
Cheers,
Yanbo

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 2 月 5 日
You will need to allocate the memory first with a fixed maximum size, and then if you find that N is smaller than that size you can delete the extra storage from the array.

カテゴリ

Help Center および File ExchangeSimulink Functions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by