matlab将工作区中的变量保存成十六进制写入硬盘文件

比如下面代码,我想把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;
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,'');

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab将工作区中的变量保存成十六进制写入硬盘文件
save C:\\Users\\Li\\Documents\\MATLAB\\test.dat x 负数和小数都不能化成十六进制的,需处理。

如何用matlab导入十六进制的数
将你的16进制数据保存到txt文件中,打开MATLAB选择workspace->importdata,导入txt文件中的数据,这样会得到cell格式数据(假设名字为textdata),调用函数hex2dec即可,a=hex2dec(textdata),a就是你所想要的数据

如何将MATLAB运行结果写入txt文件
可以运用save语句。matlab 常见的打开方式:1、‘r’:只读方式打开文件(默认的方式),该文件必须已存在。2、‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。3、‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。4、‘w+’:读写方式打开文件。先读后写。该文件已存在...

想请教一下用MATLAB提取文本文档里面的特定的十六进制数,然后换成十...
1)先读取txt文件 a=textread('c:\\a.txt','%s')';%以字符形式打开文件 2) 打开文件后查看读取的矩阵格式 alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha矩阵 3) 导入excel表格用xlsread,具体用法网上有介绍

使用matlab在txt文本中提取十六进制数,读取规定数据之后的某些数,里面...
60 FF AA B1 38 0C 86 FF FF AA B1 B2 B3 B4 FF AA B1 11 22 输入如下命令 f=fopen('Zone1.txt');A=char(fread(f,'char'))';%A即是文本文件中的内容 fclose(f);B=regexp(A,'(?<=FF\\s+AA\\s+B1\\s+\\w\\w\\s+)\\w\\w\\s+\\w\\w','match')%B即提取了所要的内容 ...

Matlab怎样读取txt文件中的十六进制数
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...

Matlab 中 fscanf 和 十六进制二进制转换 的应用
其实你可以把文件弄成txt的,然后直接load 记事本名称就可以继续下面的工作了。

求指点MATLAB的save函数
>> save mydate A 把变量A存为 mydate.mat 文件 >> save('mydate','B','-append');把变量B添加到 mydate.mat 文件中,现在 mydate.mat有两个变量A和B >> save('mydate','C','-ascii')把变量C以ASCII格式存为mydate 文件 ...

matlab如何写32位的十六进制顺序数
1、首先将十六进制数保存为txt或xlsx文件,在matlab中使用importdata。2、其次输入类型选择text,输出类型选择stringarray。3、最后使用hex2dec将stringarray转换为矩阵即可。

MATLAB里将十进制负小数转换成十六进制数
根据你提到的要求,估计你们的DSP是定点的,因此需要把浮点数转化为定点数计算。把浮点数乘以32768,说明定点数的定标是{1,0,15},即1位符号位,0位整数位,15位小数位。根据这些条件,就可以对浮点数进行转化,程序在附件中,下图为结果:

相似回答