2017-02-26 4 views
0

Ich versuche, einen 32-Bit-Binärwert zu schreiben, der mithilfe von Befehlen in einer Datei in Matlab berechnet wird. (Ich benutze Matlab online) Wie auch immer ich versuche, in eine Datei zu schreiben, finde ich nur \n gedruckt in die Datei anstelle der Werte. Könnte jemand mit dem Problem helfen?Schreiben eines 32-Bit-Binärwerts in eine Datei in Matlab

Unten ist der Code

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

Antwort

1

Die unmittelbare Problem ist, dass Ihr Format-String zu fprintf bereitgestellt enthält keine Informationen, die sie sagen, dass es eine numerische Eingabe, die Sie in die Datei drucken möchten Es druckt also nur den Zeilenumbruch, und genau das hast du ihm gesagt.

In Ihrem Fall ist es wahrscheinlich am einfachsten, die d2b in eine Zeichenkette von Nullen und Einsen zu konvertieren und sie dann unter Verwendung des Formatbezeichners '%s' zu schreiben.

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

Ich habe versucht, Ihren Vorschlag zu implementieren, aber die Datei ist in Binärform erstellt. Ich habe Werte wie '00000000011000111111111110000101',' 00000000001011100111111100011001' erwartet, die auf der Kommandozeile angezeigt werden. Aber hier ist die Ausgabe unterschiedlich – user2559758

+0

@ user2559758 Oh du hast gesagt du willst binär ... Es ist jetzt behoben. – Suever

Verwandte Themen