Is there a way to get MATLAB Function name defined in Simulink block programmatically ?

  • I would like to know whether the MATLAB Function block created in Simulink can be programatically check or parameters of the function can be obtained.
  • For example
y = fcn(u) or y = FunctionName(u)
I would like to get the function name fcn or FunctionName

댓글 수: 2

How are you hoping to use this information if it's available? What are you planning to use it for?
It's for a custom Simulink Check

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

 채택된 답변

Finding the function line is easy because it's the first line that starts with "function". Just need to deal with the different possibilities for the function signature.
For example, to find the function line
config = get_param(gcb,'MatlabFunctionConfiguration');
fline = strip(split(string(config.FunctionScript),newline));
fline = fline(startsWith(fline,"function"))
fline = fline(1);
fline =
"function img = fcn(lambd,m,n)"
% assign to fline here to see rest of processing to find the function name
fline = "function img = fcn(lambd,m,n)";
% this logic for typical signature: function (outputlist) = fcn (inputlist)
if contains(fline,"=")
fline = extractAfter(fline,"=")
if contains(fline,"(")
function_name = strip(extractBefore(fline,"("))
end
end
fline = " fcn(lambd,m,n)"
function_name = "fcn"
Would need to implement logic for all possible function signatures.

추가 답변 (1개)

Fangjun Jiang
Fangjun Jiang 2023년 2월 1일
myconfig = get_param(gcb, 'MATLABFunctionConfiguration') and parse the text, you might be able to get it.
web(fullfile(docroot, 'simulink/slref/simulink.matlabfunction.matlabfunctionconfiguration.html'))

댓글 수: 4

I tried this already but I couldn't get the function name as output.
for example,
  • system = load_system('sacv.slx');
  • x = get_param(gcb, 'MATLABFunctionConfiguration');
Did I miss another step here?
You need to parse x.FunctionScript
The function name shows up on the icon and it changes as the user changes the function name. So I think it's already been parsed but I couldn't find it through block properties or 'MATLABFunctionConfiguration'
But this FunctionScript has the entire input and output along with the function name.

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

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

제품

릴리스

R2022b

질문:

2023년 2월 1일

댓글:

2023년 2월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by