MATLAB数据进制转换

[复制链接]
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.

MATLAB数据进制转换-1.jpg

a = xlsread('sourcedata.xls');

b = dec2hex(a);

xlswrite('data.xls',b);

成果是什么呢?

MATLAB数据进制转换-2.jpg

嗯?似乎有点不妥呢。我们再加一句。

a = xlsread('sourcedata.xls');

b = dec2hex(a);

b = cellstr(b);

xlswrite('data.xls',b);

成果就是

MATLAB数据进制转换-3.jpg

假如源数据是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转化为十进制等等。

在工程中,也经常用到各类文件格式和数据范例的文件的读取、点窜、存储等,这些将会在另一章中先容。

在长大中进修,在进修中长大!
温馨提示:
好向圈www.kuaixunai.com是各行业经验分享交流社区,你可以在这里发布交流经验,也可以发布需求与服务,经验圈子里面禁止带推广链接、联系方式、违法词等,违规将封禁账号,相关产品信息将永久不予以通过,同时有需要可以发布在自己的免费建站官网里面或者广告圈, 下载好向圈APP可以加入各行业交流群 本文不代表好向圈的观点和立场,如有侵权请下载好向圈APP联系在线客服进行核实处理。
审核说明:好向圈社区鼓励原创内容发布,如果有从别的地方拷贝复制将不予以通过,原创优质内容搜索引擎会100%收录,运营人员将严格按照上述情况进行审核,望告知!
回复

使用道具 举报

已有(1)人评论

跳转到指定楼层
LLouisan 发表于 2021-1-4 00:35:06
matlab进制转换
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

24小时热文