Loading Structure from base workspace to embedded matlab

4 次查看(过去 30 天)
Does anyone know how to load a structure from base workspace to embedded matlab ?
The structure itself is a combination of constants and sub-structures containing more constants and all I really want is all this information to be made available in the embedded matlab function scope.
Cheers !
  2 个评论
Kaustubha Govind
Kaustubha Govind 2011-8-3
Have you tried making it a parameter of the Embedded MATLAB block?
Robbo
Robbo 2011-8-3
I have but I get an error message implying that it cannot accept a structure as an input, only constants/bus objects..etc if that makes any sense ?

请先登录,再进行评论。

回答(2 个)

Arnaud Miege
Arnaud Miege 2011-8-3
You need to define the scope of the structure as a parameter, not an input (which is the default). Here's a simple example. In the base workspace, I have defined:
s = struct;
s.a = 1;
s.b = 2;
and then I have a MATLAB Function block (previously called Embedded MATLAB Function):
function y = fcn(u,s)
%#codegen
y = s.a * u + s.b;
and s is defined as a parameter in the Model Explorer and it works fine. See Working with Structures and Bus Signals in the documentation.
HTH,
Arnaud
  6 个评论
Robbo
Robbo 2011-8-3
I see, as soon as I deleted the arrays in my structures it worked. Thank you

请先登录,再进行评论。


Fangjun Jiang
Fangjun Jiang 2011-8-3
From the documentation, "The Embedded MATLAB Function block accepts inputs of any type that Simulink supports, including fixed-point and enumerated types. For more information, see Data Types Supported by Simulink in the Simulink documentation."
Looking further, structure data is not supported by Simulink. I guess you have to flatten your structure data then.
  1 个评论
Robbo
Robbo 2011-8-3
Oh I see, thank you very much. I was thinking of converting my structure into a bus object and tried the busCreate functionality which I assumed would turn a given MATLAB structure into a bus. I could then route this bus into the embedded matlab function as input, however I was unsuccessful again and obtained 2-3 error messages.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 String 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by