Programmatically change MATLAB Fcn Block Function Configuration Script
3 ビュー (過去 30 日間)
古いコメントを表示
I'm hoping to programmatically change the Function Script for a MATLAB Fcn Block
currentScript = 'function y = fcn(u, value)';
config = get_param(mFcnBlock, 'MATLABFunctionConfiguration');
config.FunctionScript = currentScript;
My code is as shown above, and this works as intended. The result is:
function y = fcn(u, value)
How would I change the currentScript to be the following?
function y = fcn(u, value)
switch u
case true
y = value;
case false
y = 0;
otherwise
y = nan;
end
I've tried several ways, but the function script almost always ends up as the following:
function y = fcn(u, value,switch,ucase,truey, value1,case,false,y, otherwise, y1, nan,end)
Thanks!
0 件のコメント
採用された回答
Paul
2023 年 4 月 27 日
Hi Aarish,
This worked for me.
config = get_param(gcb,'MATLABFunctionConfiguration'); % Matlab Fcn block selected in Simulink diagram
new_script = ...
"function y = fcn(u, value)" + newline + ...
"switch u" + newline + ...
" case true" + newline + ...
" y = value;" + newline + ...
" case false" + newline + ...
" y = 0;" + newline + ...
" otherwise" + newline + ...
" y = nan;" + newline + ...
"end";
config.FunctionScript = new_script;
If you don't mind me asking, what is the use case for wholesale change of the function code progrmatically?
0 件のコメント
その他の回答 (1 件)
Aaryan
2023 年 5 月 9 日
how to add a new function to the same block?
like function x = fcn(u,v)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Simulink Functions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!