原创 Matlab读取十六进制数

2018-9-20 16:47 788 0 分类: 通信

通过串口向上位机发送的数据往往是16进制数,但是我们直观的比较数据则是用10进制的形式,这就需要将16进制数转化成10进制数。

    通过串口调试助手将采集的数据保存成TXT文档后第一个问题就是Matlab如何读取TXT文件的值,matlab有个函数textread 就可以实现,当然用fopen也可以,但textread 比较简单。textread的使用可以参考help文档。将16进制转化成10进制用到了matlab的另外一个函数hex2dec(a),这个函数的具体用法也见help。

    读取二进制txt文件:
假如txt文档中内容为0001 0010 0011 0100 1000,保存在pin.txt文档中
使用a=textread('pin.txt','%s')'
a =
    '0001'    '0010'    '0011'    '0100'    '1000'
可以看到数据保存为了char格式。
使用bin2dec
b=bin2dec(a)'
b =
     1     2     3     4     8
可以看到成功地转换成了十进制文件。

十六进制文件:
0001 0010 0011 0100 1000 A B C AA

a=textread('pin.txt','%s')'
a =
    '0001'    '0010'    '0011'    '0100'    '1000'    'A'    'B'    'C'    'AA'

可以看到成功读取了文件。

b=hex2dec(a)'
b =
           1          16          17         256        4096          10          11          12         170

读取完毕。

        将16进制数据转换成10进制后还需要将数据进行保存。可以用dlmwrite函数,dlmwrite('c:\b.txt',b,'delimiter', ' ') %将得出数据存入新的b.txt文档。

更多精彩内容,请关注我的个人微信公众号“EE漫谈”。

一起漫谈电子工程师,技术和生活。

文章评论0条评论)

登录后参与讨论
广告
我要评论
0
0
广告
关闭 热点推荐上一条 /3 下一条