sql2008r2批量附加mdf文件_MATLAB处理INCA采集数据(mdf,dat等)一

mdf格式数据,包括mdf、dat、mf4等格式;

发动机标定工程师通过INCA、ETAS581 582 592等采集数据,一些厂商的车载记录仪等采集的数据通常是这种格式。

而采集的数据通常由mda去查看,但有时候可能会有大批量分析数据的需求,比如市场车辆采集的数据。。。经常需要重复性处理做报告,这时用matlab是比较方便的,直接导入提取数据中自己需要的数据,将数据自动写入自己提前做好的excel中,几秒钟处理完生成报告,就可以快乐的摸鱼了!

matlab可以对mdf格式的数据进行提取,

m=mdf(filename);

提取出来的数据通常是这样的:

447df4308dc234f7ce65e8b61ce1eb66.png

打开后会看到一些相关参数:

22541d874df64fe7e3ecb28c772a645d.png

可以通过进入ChannelNames查看signal的名字,我们可以看到里面有很多cell,每个cell里对应的是采集频率相同的变量。

但不同的工程师,不同的采集设备,会有不同的命名格式,比如有的是**XCP:1有的则可能是**:XCP1,而且会设置各种各样的采集频率

对于数据处理还是有一些麻烦,不像python中asammdf库功能那么多,所以写了个简单的用来提取数据的function自己用

%该函数用于查找mdf文件中的变量,并输出数据和对应的时间
function[data,time] = data_time_output(Variable,mdfobj)
    i=1;
    ChannelLength=length(mdfobj.ChannelNames);
    for i=1:ChannelLength
        PositionVariableLogic=strcmp(mdfobj.ChannelNames{i},Variable);
        %在频道i中查找对应的Variable,并输出该频道中的每个cell是否含有该Variable对应的逻辑值,如果这个频道中有该Variable,则输出1,如没有则输出0
        PositionVariable=find(PositionVariableLogic);
        %FINDposition,找到对应的位置
        if PositionVariable>0
            [data, time] = read(mdfobj, i, Variable, 1, 1000000000, 'OutputFormat', 'vector');
        else 
            continue
        end
      
    end
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值