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

string und number in einer Matrix verwenden

 

knut
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 31.05.10
Wohnort: ---
Version: 2006a
     Beitrag Verfasst am: 30.03.2011, 18:48     Titel: string und number in einer Matrix verwenden
  Antworten mit Zitat      
Moin Moin.

Ich habe lange nicht mehr programmiert und stehe nun vor einem Rätsel, welches durch eine gewisse Routine wahrscheinlich nicht aufkommen würde.

Ich habe eine .txt-Datei mit ca. 2^21 x 3 Werten.
Diese möchte ich zur weiteren Verarbeitung mit einem anderen Programm in das gewünschte Format überführen.

Der Aufbau der Datei ist relativ übersichtlich:
Es gibt einen Header unter dem die einzelnen Werte eingefügt werden.
Jedoch muss ein 'POINT ' vor jedem Wert stehen, die Spalten müssen durch ein Komma separiert werden und nach der letzten kommt wieder ein String (eine Kombination aus Buchstaben und Zahlen).
Sowohl Text als auch Werte in der Ausgabe funktioniert leider nicht. Zumindest heute bei mir nicht.

Zusätzlich muss jeder angegebene Wert 6 Nachkommastellen aufweisen.

Würde mich sehr freuen wenn mir jemand einen Tipp dazu geben kann...

Liebe Grüße

Knut
Private Nachricht senden Benutzer-Profile anzeigen


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 30.03.2011, 19:41     Titel:
  Antworten mit Zitat      
Zeig doch mal dein Code bisher, dann kann man dir effizienter helfen..
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 31.03.2011, 10:09     Titel:
  Antworten mit Zitat      
Hallo knut,
hilfreich wäre auch eine Beispiel wie die Datei im Moment aussieht und wie sie danach aussehen soll.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
knut
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 31.05.10
Wohnort: ---
Version: 2006a
     Beitrag Verfasst am: 31.03.2011, 10:19     Titel:
  Antworten mit Zitat      
natürlich, sorry, gestern abend nicht mehr daran gedacht...

Hier das erforderliche Format:
Zitat:
benötigtes Ausgabeformat

SYMBOL 5.000000, 1,1,0
POINT -588.357702, 557.577941, 0.000000, 1,15,1,0,1,1, 0
POINT -415.511970, 410.685437, 0.000000, 1,15,1,0,1,1, 0
POINT -33.360860, 297.483875, 0.000000, 1,15,1,0,1,1, 0
POINT -68.470149, 499.629522, 0.000000, 1,15,1,0,1,1, 0
POINT -258.870525, 232.797267, 0.000000, 1,15,1,0,1,1, 0
POINT -33.360860, 297.483875, 0.000000, 1,15,1,0,1,1, 0
...



Und hier die Daten die ich zur Verfügung habe:
Zitat:
Ausgangsdaten

-98 -132 0.75
-97.75 -132 0.75
-97.5 -132 0.75
-97.25 -132 0.75
-97 -132 0.75
-96.75 -132 0.75
...


momentan spiele ich mit der Fkt. sprintf herum, aber alles noch nicht zielführend.

Liebe Grüße

Knut
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 31.03.2011, 11:03     Titel:
  Antworten mit Zitat      
Hallo knut,
beispielsweise für eine Zeile:
Code:

sValue = '-98 -132 0.75';
cValue = textscan(sValue, '%f');
end_value = ['POINT ', sprintf('%5.6f, ', cValue{1}), '1,15,1,0,1,1, 0']
 


Vielleicht geht es auch geschickter, aber das wäre der erste Ansatz der mir jetzt einfällt.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
knut
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 31.05.10
Wohnort: ---
Version: 2006a
     Beitrag Verfasst am: 01.04.2011, 16:39     Titel:
  Antworten mit Zitat      
Hallo _Peter_

Sorry das ich mich erst jetzt melde, hatte gestern nen Außentermin...

Ich habe jetzt eine relativ seltsame Lösung gefunden, bin auch nicht wirklich glücklich mit der, aber schonmal ein Anfang Smile

Code:


% Einlesen des ASCII-Datensatzes

data = load ('test.txt');

Header = {'SYMBOL  '};
Header_Suffix = {'5.000000, 1,1,0'};
Praefix = {'POINT   '};
Suffix = {'   1,15,1,0,1,1, 0'};


laenge = length(data);

output = cell(laenge+1,7);

output(1,1) = Header;
output(1,2) = Header_Suffix;

for b=1:laenge

    x=sprintf('%5.6f\n',data(b,1));
    y=sprintf('%5.6f\n',data(b,2));
    z=sprintf('%5.6f\n',data(b,3));


output(b+1,:) = [Praefix, x,',',y,',',z, Suffix];

end


 


Da ich Text und Zahlen nicht gemeinsam unterbringen konnte, habe ich ein Cell-Array eröffnet und dort die einzelnen Komponenten eingelesen. Die Ascii-xyz-Daten wurden mit sprinf gelesen und es scheint zu funktionieren. Kann mir das ganze als seltsam formatiertes xls-sheet ausgeben lassen, jedoch nicht als .txt oder irgendein anderes Format. Würde mir gerne ein ASCII-file ausgeben lassen.

Gibt es elegantere Lösungen?

Liebe Grüße und schon einmal ein schönes Wochenende
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.