Syntax error in a Simulink Fcn block

2 visualizzazioni (ultimi 30 giorni)
Nancy
Nancy il 6 Ago 2014
Commentato: Yu Jiang il 8 Ago 2014
I am getting a syntax error message for the expression "FiringOrder(u)" (no quotes) in a Fcn block. "FiringOrder" is a 1 x 6 row vector in the base workspace. (I have also tried it with "FiringOrder" defined as a row vector in the model workspace, with the same result--syntax error.) The input is a single value that I'm trying to use to index into the array, outputting the value at the "u'th" column in the row vector.
The help documentation for the Fcn block says that Simulink searches for function names in the expression, and then looks in the MATLAB base workspace, so it should be finding the row vector FiringOrder. I've tried adding the vector as a parameter in the model workspace, and that doesn't work either. This expression is so simple that I can't believe I'm getting a syntax error, but I am. What am I doing wrong??
Thanks.
  2 Commenti
Yu Jiang
Yu Jiang il 6 Ago 2014
Hi, can you put that block in a Simulink file and post it here?
Nancy
Nancy il 7 Ago 2014
Thanks for the response. Attached is an excerpt from my model that shows the same behavior--a message that there's a syntax error in the Fcn block.
BTW, I'm running R2014a, on a Windows 7 64-bit platform.
If the answer to the problem isn't obvious from the attached, let me know and I'll put in a service request with a zipped copy of the entire project.

Accedi per commentare.

Risposta accettata

Yu Jiang
Yu Jiang il 7 Ago 2014
Since FiringOrder is an array in your workspace, it would not be recognized as a function in MATLAB.
To achieve your objective, try replacing the Fcn block with the block "1-D Look up Table" (See Documentation).
Set the Table Data as FiringOrder and the breakpoints as 1:6.
  2 Commenti
Nancy
Nancy il 8 Ago 2014
Thank you--that works. I see now that the Fcn block would of course be looking for a function (duh!), and that while FiringOrder(u) would be a valid MATLAB expression, Fcn block wouldn't be recognizing all MATLAB expressions, only ones using functions, so it's an syntax error rather than "function not found" since FiringOrder exists but isn't a function. As I said, I was being dense! Thanks again.
Yu Jiang
Yu Jiang il 8 Ago 2014
No problem :)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Simulink Functions in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by