Simulink mask using workspace variables

조회 수: 9 (최근 30일)
Dinemayer Silva
Dinemayer Silva 2017년 6월 13일
댓글: Dinemayer Silva 2017년 6월 13일
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.

채택된 답변

Sebastian Castro
Sebastian Castro 2017년 6월 13일
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
  댓글 수: 1
Dinemayer Silva
Dinemayer Silva 2017년 6월 13일
Thanks Sebastian. It worked perfectly.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Author Block Masks에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by