WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Histogramme als Txt Dateien speichern

 

Histo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.10.2009, 17:34     Titel: Histogramme als Txt Dateien speichern
  Antworten mit Zitat      
Huhu liebe Matlaber Smile

Ich hab verschiedene Datensätze in einer datei, zu denen ich gerne ein histogramm als txt Datei speichern will. Jedes Histogramm in einer eigenen Datei,
also sowas wie hist1.txt, hist2.txt usw
In der Datei soll dass dann so stehen, ich habe diskrete Messwerte von 17 bis 117 und will dann daneben die Anzhal der Messwerte aus dem Datensatz schreiben.

zB
17, 5 (messwert 17 kam 5 mal vor)
18, 0
19, 53
etc

irgendwie krieg ich das mit dem messwert links und der anzahl nicht hin Sad

ich habe bisher sowas


Code:
function HistogrammToText(filename,data)
[x,y,z] = size(data);

%verschiedene messwert datensätze durchgehen
for i=1:z
    f = fopen('filename'+i+'.txt','w');
    for l=17:117
       fprintf(f, l+ ' ');
        for j=1:x
            for k=1:y
                if data(j,k) = l
                   number = number +1;
            end
        end
        fprintf(f, number+'\n');
    end
    fclose(f);
end


Irgendwie klappt das aber nicht Sad
Hoffe jemand weiss was ich meine und kann mir helfen


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2009, 10:41     Titel:
  Antworten mit Zitat      
Hallo,

ich würde das Ganze folgendermaßen machen:
Code:

r = randi([17,27],1,30);  % Testdaten erzeugen (hier zwischen 17 und 27)
[n,bin] = hist(r,17:27);  % Histogram berechnen
csvwrite('myhist.txt',[bin',n'])   % Datei schreiben
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Histo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2009, 19:36     Titel:
  Antworten mit Zitat      
Super, dass hilf tmir schonmal viel weiter Smile

Jetzt hab ich aber noch ein Problem und sitz da schon ne Stunde dran :/

Also ich hab hab eine 3x3 Matrix, daraus will ich dann n verschiedene 2x2 Matrizen machen, also genauso viele wie es z-Dimensionen in der 3x3 Matrix gibt. Das geht ja noch ganz gut mit einer Schleifen bis z.
Dann will ich jede 2x2 Matrix horizontal konkatenieren, so dass ichs in hist() stecken kann. Das ist sicherlich ganz easy mit horzcat(), aber ich steh gerad auf dem Schlauch, wie ich das mache.
Habe schon so stümperhafte Sachen versucht

Code:

for i=1:z
   for j=1:y
      C = horcat(data(1,j);
      [n,bin] = hist(C,17:27);
      csvwrite('hist.txt',[bin',n']);
   end
end

 


Sieht natürlich falsch aus und ich bekomms irgendwie nicht hin :/
Und gibts eine Möglichkeit bei dem csvwrite() nach jedem Paar von Wert,Anzahl ein '\n' anzufügen?
 
Histo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2009, 19:44     Titel:
  Antworten mit Zitat      
Sorry für die Dummheit Smile

Das konkatenieren geht natürlich mi reshape() und Zeilenumbrüche werden natürlich auch gemacht. man sollte nur nicht den Standard Windows Editor nehmen zum öffnen Very Happy
 
Histo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.10.2009, 21:11     Titel:
  Antworten mit Zitat      
Nun habe ich doch nochmal eine Frage :/

Also das mit den Histogrammen schreiben klappt alles wunderbar.
Nun hab ich das Problem, dass ich am Anfang der Datei immer noch bestimmte Formate reinschreiben muss, bevor die Histogrammdaten geschrieben werden.
csvwrite() schreibt mir das alles super rein, aber ich hab nicht rausbekommen, wie ich damit am Anfang der Datei noch eigene Informationen schreiben kann bevor die Histogrammdaten geschrieben werden? Habs versucht mit fopen() und dann fwritef() und danach csvwrite() auf den selben Dateinamen, aber die Datei wird überschrieben und nicht erweitert.

Vielleicht weiss ja jemand Rat.
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2009, 10:02     Titel:
  Antworten mit Zitat      
Hallo,

dlmwrite unterstütz das anhängen an eine existierende Datei:
Code:

dlmwrite('filename.txt', M, '-append')
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.