MATLAB进行CAN文件解析--PART2

上部分讲述到数据划分,以及划分过的数据进行处理,本部分讲数据输出

要达到类似结构体方式输出,需要解决序列问题,i

外层数据  total_i<=size(data0,1)

周期数据 period_i<=period(size(data0,1))

数据总行数dataline_i=total_i-sum(can_index)

输出行数数据 line_i=dataline_i+period_i*2

设定好固定输出格式

。。。。。。。。。分割线

上次考虑输出时思路有问题,保存到txt格式时候,总是考虑矩阵->txt格式,其实不然,可以考虑matlab本身自带的fprintf函数,采用如何格式编写:一个matlab实例

x = 0:.1:1;
A = [x; exp(x)];
fileID = fopen('exp.txt','w');
fprintf(fileID,'%6s %12s\n','x','exp(x)');
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);

这里周期I采用字符period_i表示,canid,时间,

关于周期的设置,如何能够确定某个数是于周期内第一次出现?设置逻辑判断,如果x==period(i)&&x==period(i-1)+1,那么x就是周期内第一次出现的数,否则就是另外一个判断,if  x==period(i),以下面的代码给出逻辑判断。

if x==period(i)
    if(x==period(i-1)+1)
        fprintf(fileID,'周期 %d\n',period_i);
    end
    %这块为重点内容,此块填写第二部分CANid内容,第一块内容在下面部分填写
    fprintf(fileID,'ID %s\n',s);
%
%
%
%加以判断,若下个周期要增加,则先对x增加1
     if(x==period(i+1)-1)
         x=x+1;
     end
end

以上方式应用到了实际应用中,但是接下来处理字符串时候,大大增加了系统反应时间,加入新的自设函数,对十进制转化成16进制进行添加0这个功能,能够使界面看起来整洁。

function f=dec2hex00(x)
f=dec2hex(x);
if size(f,2)==1
    f=strcat('0',f);
end

 

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值