分享免费的编程资源和教程

网站首页 > 技术教程 正文

MATLAB数据进制转换 matlab进制转换函数

goqiw 2024-10-13 05:00:24 技术教程 25 ℃ 0 评论

MATLAB中,数据的运算、读取和存储过程有时会涉及到进制的转换。不了解进制转换方法的话会非常恼火。

1、单个数据转换

比如我们想知道一个十进制数的二进制表示,来看具体的位置1还是0.这时可以用dec2bin函数。

a = 888;

b =dec2bin(a);

b =

1101111000

当然二制转十进制用bin2dec。注意此时的输入应为string类型。

a = '1101111000';b =bin2dec(a);b

b =

888

同理:dec2hex,十进制转化为十六进制;hex2dec十六进制转化为十进制;

base2dec为将任意进制转换为10进制。用法为:

a = '525'

b = base2dec(a,6);

b =

197

将6进制数a('525')转换为10进制数197.

2、矩阵转换

矩阵进制的转换和单独的数据相似。比如将矩阵['1000';'1010';'1100']转换为十进制表示的矩阵。

a = ['1000';'1010';'1100'];

b = bin2dec(a);

b =

8

10

12

注意,不能将矩阵a写为['1000','1010','1100'];这样会是什么样的结果呢?

b =

2220

因为这样相当于a等于'100010101100';

3、文件数据进制转换

比如源数据为一个xls表格,里面是一列十进制数(11,22,33,44,55,66,77,88,99),需要把这些数据转换为16进制,并重新存储。该如何操作呢?so easy.

a = xlsread('sourcedata.xls');

b = dec2hex(a);

xlswrite('data.xls',b);

结果是什么呢?

嗯?好像有点不妥呢。我们再加一句。

a = xlsread('sourcedata.xls');

b = dec2hex(a);

b = cellstr(b);

xlswrite('data.xls',b);

结果就是

如果源数据是M*N行的矩阵呢?那么我们需要在b = cellstr(b);后面加上reshape语句,将b设置为我们需要的行和列。

b = reshape(b,M,N);

假如串口调试助手等收到的数据为十六进制,我们需要进行一些处理,怎么读取这个文件呢。txt文档里的数据为:A B C D 2E 3F;

a=textread('source.txt','%s')';

a =

'A'

'B'

'C'

'D'

'2E'

'3F'

后续可以用hex2dec转化为十进制等等。

在工程中,也常常用到各种文件格式和数据类型的文件的读取、修改、存储等,这些将会在另一章中介绍。

在成长中学习,在学习中成长!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表