天天看点

matlab非线性插值,matlab非线性插值

在MATLAB中算出了一个十进制的数组(有几百个单元),如何把这些十进制的书转化为16进制呢?

如果是正数直接使用dec2hex函数。如果是负数,将其转换为反码再用dec2hex。

例:a=[-1 10 17 -10 9],需转换为一个字节的十六进制表达。

需将其中的负数转换为相应的反码,n = n + 256

使用 a(find(a<0))=a(find(a<0))+256

得到

a =

255 10 17 246 9

再用

dec2hex(a)

得到

ans =

FF

0A

11

F6

09

%%%%%%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'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%