Simulink mask using workspace variables
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dinemayer Silva
le 13 Juin 2017
Commenté : Dinemayer Silva
le 13 Juin 2017
In a Simulink mask I have the command disp(sprintf('(%4.2fx-%4.2f)',abs([a b]))). "a" and "b" are defined in the workspace as 2.2 and 6.8, respectively. In the command line I have the correct output (2.20x- 6.80). However, in the Simulink I ge the "???" error message. Using the preview of the mask editor, I get the message "could not evaluate MaskDisplay commands of the block xxx: Undefined function or variable 'a'."
How to correctly use variables from the workspace in Masks?
PS: I'm using Matlab R2016b.
0 commentaires
Réponse acceptée
Sebastian Castro
le 13 Juin 2017
The mask has a separate workspace, so what you need to do is get the values from the base workspace before using them.
There is a function called evalin which will let you evaluate an expression from a separate workspace. In this case, we want to grab a and b from the BASE workspace (where you defined a and b) and stick them in the mask's workspace.
An example of code that works for the mask display callback:
myVal = evalin('base','abs([a b])');
fprintf('(%4.2fx-%4.2f)',myVal);
- Sebastian
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Author Block Masks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!