MATLAB Answers

0

Extract rows from a matrix input signal in TLC files

Asked by John Borek on 9 Aug 2018
Latest activity Commented on by John Borek on 10 Aug 2018
For code generation of my level 2 S-function, I need to inline my S-function in a TLC file. I'm new to this, so I'm experimenting with the 'timestwo' example. I now know how to extract individual elements from a signal that is a 1D array, but what I don't know is how to extract multiple elements from a larger array as a single variable (e.g. extract [1 2] from [1 2 3]). I ultimately need to extract individual rows from a matrix I input into the S-function as separate variables (e.g. extract [1 2] from [1 2; 3 4]).

  0 Comments

Sign in to comment.

1 Answer

Answer by TAB
on 10 Aug 2018
Edited by TAB
on 10 Aug 2018
 Accepted Answer

I assume you are trying to inline S-function for C-code generation.
Simulink Coder (and also Embedded Coder) handles 2-D array as 1-D.
So even if there is 2-D array (Signal or parameter) in your model, it will be handles as 1-D array in generated code.
So TLC also don't provide any option/function to access an array as 2-D.
For your inlining TLC, you can handle 2-D array as 1-D OR before passing the Simulink 2-D array to S-function, split into 1-D array. This is best option in my opinion.

  1 Comment

Okay, thank you!

Sign in to comment.