Matrix as output in an S-function
Afficher commentaires plus anciens
Hi, I'm trying to put a matrix in the output of an s-function but I'm getting following error:
In an assignment A(I) = B, the number of elements in B and I must be the same.
I think because I'm writing a matrix where Matlab expects a constant...
I think this is the relevant code:
sizes.NumOutputs = NumberOfOutputs;
...
[sys,next_state] = updateFSM(x,u);
...
function [NumberOfInputs,NumberOfOutputs,InitialState]=initFSM()
NumberOfOutputs = 2;
...
function [Output,next_state]=updateFSM(state,Input)
CS = 1;
STROOM = zeros(1,10);
...
Output(1) = CS;
Output(2) = STROOM;
Is it possible to output a matrix (with a fixed dimension of 10 bits)?
My S-function is importing one bit each clock cycle and storing it in a matrix. After 10 clock cycles the resulting matrix should be exported.
Thanks in advance!
Réponses (1)
Walter Roberson
le 30 Nov 2011
Change
Output(2) = STROOM;
to
Output(2:11) = STROOM;
If you want CS and STROOM to be distinct from each other, then your routine has three outputs rather than the 2 your code claims.
4 commentaires
Robbe
le 30 Nov 2011
Walter Roberson
le 30 Nov 2011
Your code appears to be at least partly in Level-1 S-Function form. You must decide between Level-1 or Level-2 as their calling protocols are quite different.
http://www.mathworks.com/help/toolbox/simulink/sfg/f7-67615.html#f7-59576
Kaustubha Govind
le 1 Déc 2011
Robbe: Walter's solution is a single vector which has 11 elements - the first element is CS and the remaining 10 elements comes from STROOM.
Robbe
le 1 Déc 2011
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!