在MATLAB中算出了一个十进制的数组(有几百个单元),如何把这些十进制的书转化为16进制呢?
如果是正数直接使用dec2hex函数。如果是负数,将其转换为反码再用dec2hex。
例:a=[-1 10 17 -10 9],需转换为一个字节的十六进制表达。
需将其中的负数转换为相应的反码,n = n + 256
使用 a(find(a<0))=a(find(a<0))+256
得到
a =
再用
dec2hex(a)
得到
ans =
FF
0A
11
F6
09
%%%%%进制转10进制 转化方法一%%%%%%%%%%%%
a=textread('c:\a.txt','%s')';%以字符形式打开文件
alpha=hex2dec(a)'; 进制转化为10进制数,存入alpha矩阵
%%%%%%进制转10进制 转化方法二%%%%%%%%%%%
[wenjian_ming,lujing_ming] = uigetfile('c:\a.txt','导入数据');
fid=fopen(strcat(lujing_ming,wenjian_ming),'r');
data=[];
while ~feof(fid)
m=fscanf(fid,'%3x',[1 inf]);
data=[data;m];
end
alpha=data;
%%%%%%%保存文件方法一%%%%%%%%%%%%%%
dlmwrite('c:\b.txt',alpha,'delimiter', ' ')%将得出数据存入新的b.txt文档
%%%%%%%保存文件方法二%%%%%%%%%%%%%%
fid=fopen('c:\d.txt','w');
fprintf(fid,'%d ',alpha');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
alpha2=alpha(1:2:length(alpha)-mod(length(alpha)+1,2));%将奇数元素提取出来
dlmwrite('c:\c.txt',alpha2,'delimiter', ' ')%将得出数据存入新的c.txt文档
%%%%%%%画图%%%%%%%%%%%%%%
plot(1:length(alpha2),alpha2) %画图
本文介绍了在MATLAB中如何将包含正负数的十进制数组转换为十六进制,包括使用dec2hex处理正数和反码方法处理负数,以及从文件读取十六进制数据并转换为十进制,同时展示了两种不同的数据保存方法和绘制数据图表的过程。
7718

被折叠的 条评论
为什么被折叠?



