当前位置:文档之家› MATLAB小程序:将TXT中十六进制数转为十进制输出

MATLAB小程序:将TXT中十六进制数转为十进制输出

matlab小程序:将txt中十六进制数转为十进制输出function htod(filename)
clc
[n]=textread(filename,'%2c');
[a b]=size(n)
m=zeros(a,b);
mm=zeros(a,1);
for i=1:a
for j=1:b
switch n(i,j)
case{'0'}m(i,j)=0;
case{'1'}m(i,j)=1;
case{'2'}m(i,j)=2;
case{'3'}m(i,j)=3;
case{'4'}m(i,j)=4;
case{'5'}m(i,j)=5;
case{'6'}m(i,j)=6;
case{'7'}m(i,j)=7;
case{'8'}m(i,j)=8;
case{'9'}m(i,j)=9;
case{'A'}m(i,j)=10;
case{'B'}m(i,j)=11;
case{'C'}m(i,j)=12;
case{'D'}m(i,j)=13;
case{'E'}m(i,j)=14;
case{'F'}m(i,j)=15;
otherwise m(i,j)=nan;
end
end
end
%m
for i=1:a
for j=1:b
mm(i)=mm(i)+m(i,j)*16^(j-1);
end
end
%mm
[a b]=size(mm);
size_mm=a mmm=mm';
savefile='C:\Documents and Settings\Administrator\桌面\test.txt'; fid=fopen(savefile,'w');
fprintf(fid,'%4d',mmm)
fclose(fid);
matlab如何读取二进制、十六进制txt文档
发现matlab如何读取十六进制的和二进制的txt文章不多。

今天刚想了一种方法,所以在这里小结一下,所以matlab中文论坛共享一下,没有参考其他的文章哦,觉得好用就帮顶,不好用提意见。

原帖地址/thread-23226-1-1.html
本方法同样适合读取十六进制和二进制以外的其他进制文件,
txt使用一个最简单的命令就可以读取textread这是一个十分有用,简便的函数(对于fopen fscanf而言)
读取二进制txt文件:
假如txt文档中内容为00010010001101001000,保存在pin.txt文档中
使用a=textread('pin.txt','%s')'
a=
'0001''0010''0011''0100''1000'
可以看到数据保存为了char格式。

使用bin2dec
b=bin2dec(a)'
b=
12348
可以看到成功地转换成了十进制文件。

十六进制文件:
00010010001101001000A B C AA
a=textread('pin.txt','%s')'
a=
'0001''0010''0011''0100''1000''A''B''C''AA'
可以看到成功读取了文件。

b=hex2dec(a)'
b=
11617256409610 1112170
读取完毕。

小结:本方法以简单使用方便的方法读取二进制、十六进制的txt文档,欢迎大家提出意见。

相关主题