MATLAB Answers

pouya jamali

Is it possible to use structure variable as an input parameter for Matlab function block in simulink?

Asked by pouya jamali
on 18 Dec 2012
Accepted Answer by TAB

I need to use a structure variable as an input in my matlab function block! I've done the instructions as said in documentation but my model doesn't run. I think structure arrays aren't supported in matlab function block, are they?

  0 Comments

2 Answers

TAB
Answer by TAB
on 18 Dec 2012
Edited by TAB
on 18 Dec 2012
 Accepted answer

You can create a non-virtual bus signal in simulink and pass this to Matlab function block. Inside matlab function block, bus and its elements can be used in the form of structure.

Similarly you can create a structure in Matlab function block and output it as bus signal from the block.

See

Attach Bus Signals to MATLAB Function Blocks

Create Structures in MATLAB Function Blocks

Can you describe your implementation (post code & attach image). It is hard to say why it is not working without seeing the implementation.

[Edited 1] Type

>> emldemo_bus_struct

in your command window. This will open an example model of bus. You can proceed with this example.

Anyway, which matlab/simulink version are you using ?

  6 Comments

pouya jamali
on 18 Dec 2012

the net is not a signal. It's just a parameter which comes from base workspace!

TAB
on 18 Dec 2012

I will, whether structure parameters are directly supported in Matlab function block or not.

You can not change the parameter value (from any workspace) in the model. They are constant for the model.

pouya jamali
on 22 Dec 2012

You're right. Thanks for your support


Answer by pouya jamali
on 22 Dec 2012

Yes, structure variables are supported in Matlab function block as input parameters. But You should consider that they can't be changed during the function. they're constants. For doing this first you must define the variable as an input parameter in Ports and Data Manager. In terms of str2func command I don't know whether it's supported or not but the feval command works properly.

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today