小小教员
小小教员
发布于 2025-09-18 / 13 阅读
0
0

Matlab脚本替换dbc参数名称

1、确定需要被修改的参数名称及修改后的参数名称,新建参数名称一一映射excel表格,用matlab脚本读取出要被修改和修改后的名称。及改变参数名称的个数

[num,data] = xlsread('test.xlsx',3);
SearchData = data(:,1);
ReplaceData = data(:,2);
length = length(SearchData);

2、打开需要修改的DBC文件,读取DBC文件数据。读取出来的是cell数组,需要计算cell数组个数。

[fid,msg] = fopen('test.dbc','r');
fileData = importdata('test.dbc');
length1 = size(fileData);
length1 = length1(1,1);

3、打开并创建重写的dbc文件

fid1 = fopen('test1.dbc','w');

4、对需要修改的dbc文件进行遍历,在遍历的过程查找所有需要修改参数并替换修改后名称,然后数据重新写进新建dbc文件中。最后关闭所有文件。

for j=1:length1
    zx_fileData(j,1)=fileData(j);
    for i=1:length
       zx_fileData(j,1) =strrep(zx_fileData(j,1), SearchData(i), ReplaceData(i));
    end
    fprintf(fid1,char(zx_fileData(j,1)));
    fprintf(fid1,'\n');
    
end

fclose('all');

4、全部matlab脚本

clear;clc
[num,data] = xlsread('test.xlsx',3);
SearchData = data(:,1);
ReplaceData = data(:,2);
length = length(SearchData);
[fid,msg] = fopen('test.dbc','r');
fid1 = fopen('test1.dbc','w');
fileData = importdata('test.dbc');
length1 = size(fileData);
length1 = length1(1,1);
for j=1:length1
    zx_fileData(j,1)=fileData(j);
    for i=1:length
       zx_fileData(j,1) =strrep(zx_fileData(j,1), SearchData(i), ReplaceData(i));
    end
    fprintf(fid1,char(zx_fileData(j,1)));
    fprintf(fid1,'\n');
    
end

fclose('all');


评论