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

Dateiarbeit

 

dasjoki
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 29.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2015, 16:09     Titel: Dateiarbeit
  Antworten mit Zitat      
Hallo,
ich möchte ein paar Daten einer Matrix in ein .txt-file schreiben. Von der Matrix möchte ich jeweils die Spaltennummer (Pixel) und den dazugehörigen Wert der ersten Zeile (Grauwerte).

Code:

dat=fopen('C:\Users\Administrator\Desktop\messdaten.txt', 'w');
fprintf(dat, '%s\n', 'Messdaten');
fprintf(dat, '%s\t%s\n', 'Pixel', 'Grauwerte');
fprintf(dat, '%i\n%g\n', 1:columns, mwcolumn_norm(1,:));
fclose(dat);
 


Die benötigten Daten sind schon richtig ausgewählt, jedoch werden mir nun erst die Pixel und dann die Grauwerte untereinander in der ersten Spalten angezeigt. Gewünscht ist aber, dass in der ersten Spalte die Pixel stehen und in der zweiten Spalte die dazugehörigen Grauwerte. Ich vermute, es liegt einfach an der Formatierung der vierten Zeile ('%i\n%g\n') aber ich habe auch schon andere Formatierungen gewählt, bin jedoch nie auf das gewünschte Ergebnis gekommen. Könnt ihr mir weiter helfen?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.11.2015, 16:14     Titel:
  Antworten mit Zitat      
Hallo,

du trennst ja auch mit \n (newline). Wäre \t (tab) nicht sinnvoller?

Code:
fprintf(dat, '%i\t%g\n', 1:columns, mwcolumn_norm(1,:));


Wenn man Tables nutzt, ist der Export übrigens deutlich angenehmer: writetable , und fertig.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dasjoki
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 29.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2015, 16:18     Titel:
  Antworten mit Zitat      
Hallo,
danke für die schnelle Antwort.

Auch diese Formatierung hatte ich schon probiert. In diesem Fall schreibt er erst Pixel 1 in Spalte 1, Pixel 2 in Spalte 2, Pixel 3 in Spalte 1 (nächste Zeile) und so weiter hintereinander weg und danach erst die Grauwerte.

Wie würde der Code für writetable aussehen?

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 04.11.2015, 16:23     Titel: Re: Dateiarbeit
  Antworten mit Zitat      
dasjoki hat Folgendes geschrieben:
Code:

dat=fopen('C:\Users\Administrator\Desktop\messdaten.txt', 'w');
fprintf(dat, '%s\n', 'Messdaten');
fprintf(dat, '%s\t%s\n', 'Pixel', 'Grauwerte');
fprintf(dat, '%i\t%g\n', 1:columns, mwcolumn_norm(1,:));
fclose(dat);
 


Du schreibst deine beiden Werte mit einem Zeilenumbruch (\n) getrennt hin. Mit Tab (\t) sollte es gehen.

dasjoki hat Folgendes geschrieben:

Auch diese Formatierung hatte ich schon probiert. In diesem Fall schreibt er erst Pixel 1 in Spalte 1, Pixel 2 in Spalte 2, Pixel 3 in Spalte 1 (nächste Zeile) und so weiter hintereinander weg und danach erst die Grauwerte.

Wie liegen denn deine Werte vor? Wenn du einen Zeilenvektor als Spaltenvektor darstellen willst, solltest du diesen auch transponieren.


dasjoki hat Folgendes geschrieben:

Wie würde der Code für writetable aussehen?

Code:

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
dasjoki
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 29.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2015, 17:02     Titel:
  Antworten mit Zitat      
Hallo,
die Grauwertmatrix ist bereits transponiert. Also die Grauwerte die ich in die Spalte einfügen will, sind bereits in einer Spalte aufgelistet. Bei den Pixeln ist columns nur die Anzahl der Spalten der Matrix zugeordnet. Darum auch 1:columns

Ich bin etwas am verzweifeln.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 04.11.2015, 17:05     Titel:
  Antworten mit Zitat      
dann versuchst du also einen zeilenvektor (1:columns) und einen spaltenvektor (=transponierte Grauwertzeile) nebeneinander dazustellen?
Wird wohl nicht gehen, ohne wenigestens das erstere auch zu Transp.
Code:
(1:columns)'

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))

Zuletzt bearbeitet von Mmmartina am 04.11.2015, 17:12, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
dasjoki
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 29.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2015, 17:09     Titel:
  Antworten mit Zitat      
Hab ich inzwischen auch geändert.

Code:

A=mwcolumn_norm';
B=1:columns;
C=B';


und

Code:
fprintf(dat, '%i\t%g\n', C(:,1), A(:,1));


Ich hab mal zum besseren Verständnis ein Screenshot von der Ausgabe erstellt.

Gruß

Ausgabe.png
 Beschreibung:

Download
 Dateiname:  Ausgabe.png
 Dateigröße:  13.69 KB
 Heruntergeladen:  363 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 04.11.2015, 17:30     Titel:
  Antworten mit Zitat      
Ah, ok. Das meinst du - fprint schreibt jede Spalte als einzelne Zeile -> somit musst du die Ausgabe nochmal Transponieren.

Code:

A = mwcolumn_norm';
C = (1:columns)';
fprintf(dat, '%i\t%g\n', [C(:,1), A(:,1)]');

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
dasjoki
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 58
Anmeldedatum: 29.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2015, 17:50     Titel:
  Antworten mit Zitat      
tausend Dank. Genau dort lag mein Problem.

Viele Grüße
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.