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

Zuordnung von Einheiten als "string" zu Zahlenwert

 

pupil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 17:21     Titel: Zuordnung von Einheiten als "string" zu Zahlenwert
  Antworten mit Zitat      
Hallo Leute,
ich habe eine Tabelle mit ° Fahrenheit-Werten gegeben. Dies Tabelle habe ich in MatLab als Matrix geschrieben und die Werte hab ich dann mittels der Formel C = (5/9)*(F-32) in °C Werte umgewandelt, die ebensfall in ne Matrix generiert sind. Ich möchte nun jedem einzelnen °C Wert jeweils das "C" als Einheit zuordnen --> wie mach ich das ? Also in der Matrix sollte hinter jedem Eintrag ein "C" stehen.
Und wie pack ich die Matrix, welche aus 2 Spalten und 30 Reihen besteht, in ein dat.-file?
Ausserdem sollte in dem dat.file die Matrix analog zur Matrix als eine Tabelle dargestellt werden, also ebenfalls mit 2 Spalten und 30 Reihen.
Danke im Voraus.
mfg


soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 19:09     Titel:
  Antworten mit Zitat      
Eine Möglichkeit wäre die Matrix in ein CELL-Array zu packen, die Einträge zu Strings konvertieren und schließliche 'C' anzuhängen:
Code:
X = cellfun(@(x) strcat(num2str(x), 'C'), num2cell(C), 'UniformOutput', false);


Um ein CELL-Array in eine Textfile zu schreiben, siehe http://www.mathworks.de/help/techdo.....t/f5-15544.html#br2ypq2-1
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.11.2011, 21:52     Titel: Re: Zuordnung von Einheiten als "string" zu Zahlen
  Antworten mit Zitat      
Hallo pupil,

Mir wird die Frage nicht ganz klar. Ich versuche mal zu vereinfachen:
Du hast eine [30 x 2] Matrix und möchtest sie in ein ASCII-file schreiben. Hinter der ersten Spalte soll ein 'C' eingefügt werden. Stimmt das so weit?
Code:
Data = rand(30, 2);
fid = fopen('Test.dat', 'w');
if fid == -1, error('Cannot create file'); end
fprintf(fid, '%gC, %g\n', transpose(Data));
fclose(fid);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
pupil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 22:47     Titel:
  Antworten mit Zitat      
Also ich hab eine Matrix C die besteht aus 30 reihen und 2 spalten. Zu jedem einzelnen Eintrag in dieser Matrix möchte ich ein "C" hinzufügen als Temperatur Einheit.
Mein zweites Problem ist es dies Matrix dann inklusive der Einheit in ein ASCII file namens celsius.dat zu bekommen. In dem file soll allerdings die Darstellung auch so aussehen wie in der ursprünglichen matrix, sprich 2 spalten mit 30 reihen.
mfg
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.11.2011, 23:19     Titel:
  Antworten mit Zitat      
Hallo pupil,

Man kann zu einer numerischen Matrix keine Buchstaben hinzufügen. In ein DOUBLE Array passen nur DOUBLEs.

Hilft Dir mein Programm weiter?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
pupil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2011, 00:29     Titel:
  Antworten mit Zitat      
Use the function dlmread() to read the temperatures in degrees Fahrenheit from the file fahrenheit.dat. Convert this temperatures to degree celsius using the formula: C=5/9(F-32) Write temperatures in celsius into a file named 'celsius.dat'. The file should have two columns, each corresponding to the columns in fahrenheit.dat. After each number in 'celsius.dat' there should be a character 'C', like in the figure.

Das ist die konkrete Aufgabenstellung.
Bei deinem Programm wird iwie nur eine spalte mit dem C behaftet.
 
pupil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2011, 00:33     Titel:
  Antworten mit Zitat      
das C sollte auch in der Tabellenansicht in dem ASCII file (.dat) bei beiden spalten hinter jedem eintrag stehen.
mfg und danke jan
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.11.2011, 00:50     Titel:
  Antworten mit Zitat      
Hallo pupil,

Aus meinem geposteten Code:
Code:
fprintf(fid, '%gC, %g\n', transpose(Data));

Dies schreibt also nur hinter den ersten Wert ein 'C'.
Du möchtest aber auch hinter dem zweiten Wert ein 'C' haben.

Nun, dann schau Dir die Zeile nochmal genau an und versuche, das Problem selbst zu lösen. Zur Not hilft Experimentieren.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
pupil

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2011, 18:25     Titel:
  Antworten mit Zitat      
Ok danke habs geschafft. Aber wie bekomme ich die werte nun tabellarische in der ascii datei noch schön geordent ? Und wie bekomme ich diese string striche ' von den werten weg ?
mfg
 
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.