您的位置:首页 > 编程语言 > MATLAB

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

2013-05-14 11:44 429 查看
老师给了我一个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矩阵中endalpha=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)  %画图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: