matlab将工作区中的变量保存成十六进制写入硬盘文件 40
比如下面代码,我想把x变量的2048个值以16进制的形式保存到文件test.dat中t=0:1/44100:2047/44100;x=12288*sin(2*pi*500...
比如下面代码,我想把x变量的2048个值以16进制的形式保存到文件test.dat中
t=0:1/44100:2047/44100;
x=12288*sin(2*pi*5000*t)+12288;
save D:\Modelsim_files\MyHBF\test.dat x
可是运行不太正确,文件里貌似并不是以16进制保存的,如下所示,有人回答吗
1.2288000000000000e+004 2.0319882663913802e+004 2.4445199468845974e+004 2.2657469187171329e+004 1.5826212250859753e+004 7.2740313718789330e+003 1.1605562708879261e+003 4.5927325347825172e+002 5.5112739924161224e+003 1.3859354562779212e+004 2.1443156028955655e+004 2.4574051311995667e+004 展开
t=0:1/44100:2047/44100;
x=12288*sin(2*pi*5000*t)+12288;
save D:\Modelsim_files\MyHBF\test.dat x
可是运行不太正确,文件里貌似并不是以16进制保存的,如下所示,有人回答吗
1.2288000000000000e+004 2.0319882663913802e+004 2.4445199468845974e+004 2.2657469187171329e+004 1.5826212250859753e+004 7.2740313718789330e+003 1.1605562708879261e+003 4.5927325347825172e+002 5.5112739924161224e+003 1.3859354562779212e+004 2.1443156028955655e+004 2.4574051311995667e+004 展开
1个回答
展开全部
t=0:1/44100:2047/44100;
x=12288*sin(2*pi*5000*t)+12288;
k=length(x);
for i=1:k
if x(i)<0
x(i)=x(i)+256;
else
end
x(i)=floor(x(i));
end
x=dec2hex(x);
save C:\Users\Li\Documents\MATLAB\test.dat x
负数和小数都不能化成十六进制的,需处理。
x=12288*sin(2*pi*5000*t)+12288;
k=length(x);
for i=1:k
if x(i)<0
x(i)=x(i)+256;
else
end
x(i)=floor(x(i));
end
x=dec2hex(x);
save C:\Users\Li\Documents\MATLAB\test.dat x
负数和小数都不能化成十六进制的,需处理。
追问
首先谢谢你的回答!
为什么保存的文件用记事本打开时乱码呢?怎样保存才能打开之后看到x相应的数值?
追答
最后一行改成这样
dlmwrite('C:\Users\Li\Documents\MATLAB\test1.dat',x,'');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询