tIs there a 'find and replace' functionality for Simulink block parameters? - MATLAB Answers - MATLAB Centraltt使用模型资源管理器编辑和管理工作区变量- MATLAB & Simulink- MathWorks 中国tIs there a 'find and replace' functionality for Simulink block parameters? - MATLAB Answers - MATLAB Centraltt
查找和替换变量在模型中:
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
get_param(tempBlock,dlgParams{j})
set_param(tempBlock,dlgParams{j},newParamName)
问:什么时候可以是用结构体的内容,进行直接获取?