Simulink模型中替换字母型参数的脚本

Simulink模型中替换字母型参数的脚本

使用说明:
脚本文件为searchNreplace.m
功能为 查找到Simulink_Demo.slx(范例文件名称) 中所有模块中参数值为Ts_Control的参数,并将其替换为 1e-5, 最后保存为 Simulink_Demo_new.slx 文件。

%说明:这个脚本用于打开 filename文件,
%将其调用的所有模块中,参数值为Search_value的,替换为Replace_Value.并保存为savename,也就是查找+replace的功能。
%注意: 是filename 调用的所有模块中的参数值只要相同的就会替换,所以请尽量使用比较特殊的参数值,以免替换错误。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%以下参数需要设置!!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%设置工作目录
userpath('C:\Users\Thinkpad\Desktop\Test Matlab')
%待修改文件名 和 待保存文件名
filename='Simulink_Demo'
savename='Simulink_Demo_new'
%待查找参数,待替换值设置
Search_value = 'Ts_Control'
Replace_value = '1e-5'

%%%%%%%%%%%%%%%%%%%%%%%%%%%%以上参数需要设置,如需批量,请修改为 数组 +循环的形式,或者函数的形式%%%%%%%%%%%


load_system(filename)

b = find_system(filename,'BlockDialogParams',Search_value)

for i=1:numel(b)
%找到simulink文件中的参数信息列表
BlockDialogParameters = get_param(b{i},'DialogParameters');
found=0;
% for j=1:numel(BlockDialogParameters)
%     if BlockDialogParameters[j] == {'Ts_Control'}
%         found =1;
%         break;
%     end
% end
BDnames = fieldnames(BlockDialogParameters);
%找到名称为Search_name
for j=1:numel(BDnames)
    BlockParamValue = get_param(b{i},BDnames{j})
    if strcmp(BlockParamValue,Search_value)
        found=1;
        break;
    end
end
%将值设置为 Replace_value
if(found ==1)
    try
        set_param(b{i},BDnames{j},Replace_value)
    end
end

end
%保存
save_system(filename,savename)
%close_system(filename)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值