xiabodan

人生天地之间,若白驹之过郤(隙),忽然而已
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

matlab中基本操作(对已知数组16进制转化为10进制)

Posted on 2013-05-14 11:44  xiabodan  阅读(1011)  评论(0编辑  收藏  举报
老师给了我一个txt,里面有上千个16进制数,每个数间有一个空格,要求将这个txt里的数全部转化为10进制数,并存在一个txt文档里。不知哪位大侠可以帮助我。。。如果教我将这些点画图重谢!(不画也行)

txt里16进制部分数的格式如下:
7B 05 7A 05 7B 05 79 05 7B 05 7B 05 7B 05 7B 05 79 05 7B 05 7A 05 7B 05 77 05 77 05 79 05 77 05 79 05 79 05 76 05 73 05 77 05 76 05 73 05 76 05 77 05 72 05 75 05 73 05 73 05 77 05 75 05 71 05 71 05 73 05 71 05 75 05 73 05 6D 05 71 05 6B 05 71 05 71 05 70 05 71 05 70 05 71 05 70 05 6B 05 70 05 6A 05 71 05 6B 05 69 05 6A 05 70 05 45 05 67 05 71 05 67 ……
a=textread('c:\a.txt','%s')';%以字符形式打开文件
alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha矩阵
dlmwrite('c:\b.txt',alpha,'delimiter', ' ') %将得出数据存入新的b.txt文档 
-------------------
哪位大侠知道如何将矩阵中的第1,3,5,7……个元素提取出来组成新矩阵。
alpha2=alpha(1:2:floor(length(alpha)/2)*2+1)
这个语句可以提取,但对于这个txt我用这个语句出现了错误:??? Index exceeds matrix dimensions.

%%%%%%16进制转10进制 转化方法一%%%%%%%%%%%%
 a=textread('c:\a.txt','%s')';%以字符形式打开文件 
alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha矩阵 
%%%%%%%16进制转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];         %将读出的数据存入data矩阵中
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)  %画图