matlab中基本操作(对已知数组16进制转化为10进制)
⽼师给了我⼀个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 7 7 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⽂档
%%%%%%%保存⽂件⽅法⼆%%%%%%%%%%%%%%matlab二进制字符串转数组
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)  %画图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。