Is there a 'find and replace' functionality for Simulink block parameters?

조회 수: 63 (최근 30일)
I have a model with many blocks which use the same variable as the values for block parameters.  Now I would like to change the variable name, but do not want to manually update each block parameter.  Is there any way to find and replace all of these block parameters with the updated variable name?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2023년 4월 19일
편집: MathWorks Support Team 2023년 4월 19일
Please use the documented workflow in the GUI:
If you need a programmatic way, you can use the Simulink API to create a function doing it.
An example implementation can be found in the following:
function [replacedBlks,replacedProperties] = findReplaceParamInMdl(mdl,oldParamName,newParamName)
arguments
mdl (1,:) char {mustBeText}
oldParamName (1,:) char {mustBeText}
newParamName (1,:) char {mustBeText}
end
replacedProperties = cell.empty(0,1);
%Can be used to specify where the search needs to be done, etc.
opts = Simulink.FindOptions("FollowLinks",false);
replacedBlksH = Simulink.findBlocks(mdl,'BlockDialogParams',oldParamName,opts);
for idxBlockToReplace = 1:length(replacedBlksH)
tempBlock = replacedBlksH(idxBlockToReplace);
dlgParamsStruct = get_param(tempBlock,'DialogParameters');
dlgParams = fieldnames(dlgParamsStruct);
replacedPropertiesBlk = string.empty(0,1);
for j = 1:length(dlgParams)
if strcmp(get_param(tempBlock,dlgParams{j}),oldParamName)
set_param(tempBlock,dlgParams{j},newParamName)
replacedPropertiesBlk = [replacedPropertiesBlk; string(dlgParams{j})];
end
end
replacedProperties = [replacedProperties;{replacedPropertiesBlk}];
end
replacedBlks = getfullname(replacedBlksH);
end

추가 답변 (1개)

Song-Hyun Ji
Song-Hyun Ji 2023년 7월 12일
Since R2021a, you can use "Find and Replace Text" to replace the found text at once in Finder as in the below-captured image.

카테고리

Help CenterFile Exchange에서 Programmatic Model Editing에 대해 자세히 알아보기

제품


릴리스

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by