2017-02-26 88 views
0

我想写一个32位二进制值,通过使用命令计算到matlab中的文件。 (我在线上使用matlab) 但是,当我尝试写入文件时,我只发现\n而不是值被打印到文件。有谁能帮助解决这个问题吗?写一个32位二进制值到matlab中的文件

下面是代码

fid = fopen('hello.txt','w');   
    for i = 1 : 30 
    y = (atanh(2^-i))*((2^32)/360) 
    n = 32 
    m = 0 
    d2b = fix(rem(y*pow2(-(n-1):m),2)) 
    fprintf(fid,'\n',d2b); 
    end 
    fclose(fid); 

回答

1

眼前的问题是,提供给您的fprintf格式字符串不包含任何信息告诉它有一个数字输入您想要打印到文件所以它只会打印换行符,这正是你告诉它要做的。

就你而言,最简单的事情是可能将d2b转换为0和1的字符串,然后使用'%s'格式说明符编写它。

str = num2str(d2b.').'; 
fprintf(fid, '%s\n', str); 
+0

我试着实现你的建议,但创建的文件是二进制的。我期待像'00000000011000111111111110000101','00000000001011100111111100011001'这样的值被显示在命令行上。然而这里的输出是不同的 – user2559758

+0

@ user2559758哦,你说你想要二进制文件...现在已经修复了。 – Suever