在matlab中将32位二进制值写入文件

在matlab中将32位二进制值写入文件,matlab,file-io,Matlab,File Io,我正在尝试将一个32位二进制值写入matlab中的一个文件,该值是通过使用命令计算出来的。我在线使用matlab 但是,当我尝试写入文件时,我只发现\n打印到文件而不是值。有人能帮忙解决这个问题吗 下面是代码 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

我正在尝试将一个32位二进制值写入matlab中的一个文件,该值是通过使用命令计算出来的。我在线使用matlab 但是,当我尝试写入文件时,我只发现\n打印到文件而不是值。有人能帮忙解决这个问题吗

下面是代码

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

直接的问题是,提供给fprintf的格式字符串不包含任何信息,告诉它有一个数字输入要打印到文件中,因此它只打印换行符,这正是您告诉它要做的

在您的情况下,最简单的方法可能是将d2b转换为0和1的字符串,然后使用“%s”格式说明符写入

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

我已尝试实施您的建议,但创建的文件是二进制文件。我期望的值是000000000 110001111111110000101、0000000000 1011100111111111100011001,它们是命令行上显示的值。然而,这里的输出是different@user2559758哦,你说你想要二进制。。。现在修好了。