Is there a way to get MATLAB Function name defined in Simulink block programmatically ?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Shiva Haresh
am 1 Feb. 2023
Kommentiert: Shiva Haresh
am 2 Feb. 2023
- 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 Kommentare
Steven Lord
am 1 Feb. 2023
How are you hoping to use this information if it's available? What are you planning to use it for?
Akzeptierte Antwort
Paul
am 2 Feb. 2023
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
Would need to implement logic for all possible function signatures.
Weitere Antworten (1)
Fangjun Jiang
am 1 Feb. 2023
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 Kommentare
Siehe auch
Kategorien
Mehr zu Simulink Functions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!