In absichtlicher Ignorierung des letzten Kommentars... Ich würde nicht versuchen Suchen / Ersetzen zu programmieren, sondern mit FOPEN - FSCANF - FCLOSE zu operieren.
Man hat ja auch schon Menschen gesehen, die versucht haben, Matrizen für ihre Protokolle in Paint zu malen ;)
Du könntest die Daten erstmal per csvread, dlmread, ... einlesen, damit Du sie in einer Matrix gespeichert hast. Dann wandelst Du alles in Strings um, ersetzt in den Spalten mit den Zahlen die Punkte durch Kommas und schreibst das ganze in einer Schleife mit fprintf zurück in die Datei. So ganz grob skizziert - weiß gerade nicht, wie das hinhaut mit den Strings in der Matrix...
Man hat ja auch schon Menschen gesehen, die versucht haben, Matrizen für ihre Protokolle in Paint zu malen
Du könntest die Daten erstmal per csvread, dlmread, ... einlesen, damit Du sie in einer Matrix gespeichert hast. Dann wandelst Du alles in Strings um, ersetzt in den Spalten mit den Zahlen die Punkte durch Kommas und schreibst das ganze in einer Schleife mit fprintf zurück in die Datei. So ganz grob skizziert - weiß gerade nicht, wie das hinhaut mit den Strings in der Matrix...
strings können nicht in eine matrix geschrieben werden, dafür müsste man zellen verwenden
Bülent, Ich denke mal mit so einer Attitüde werden locker 80% der hier aus "Freude an MATLAB" aktiven Menschen diesen Thread sofort wegklicken. Andreas
das von Dir vorgestellte Problem ist nicht sehr schwierig. Epfi hat ein mögliches Vorgehen skizziert. Da Du ja nach einem Ansatz gefragt hast (später nach "echten lösungsansätzen"), dachten wir, Du könntest mit einem Ansatz auch etwas anfangen. Bitte verzeih, dass wir Dich wörtlich genommen haben.
Falls Dir die Umsetzung von Epfis Vorschlag zu schwierig ist, kannst Du diesen Code hier verwenden. Dafür musst Du ihn markieren, kopieren und in das Matlab Command Window bzw. in Dein m-File im Editor einfügen. Achtung: Der Dateiname muss noch an Deine Datei angepasst werden! Falls Du die Daten nicht in eine neue Datei schreiben, sondern die alte Datei überschreiben willst, müssen die beiden Dateinamen in Zeile 1 und Zeile 11 übereinstimmen.
Code:
fid = fopen('DeineDatei.csv');
C = textscan(fid,'%s %s %s %s','delimiter',';');
fclose(fid);
fid = fopen('DeineNeueDatei.csv','w');
for l = 1:length(Datum) fprintf(fid,'%s; %s; %s; %s;\n',Datum{l},Wert1_neu{l},Wert2_neu{l},Wert3_neu{l});
end fclose(fid);
Wenn Du noch weitere Fragen hast, kannst Du die hier gerne stellen. Programmieraufträge wie diesen hier solltest Du aber in Zukunft in der entsprechenden Rubrik posten. Normalerweise wird dafür eine Gegenleistung angeboten. Da Du neu hier bist, verzichte ich mal auf mein Honorar.
Herzliche Grüße
Bijick
PS: Ich dachte auch erst an Wegklicken...
_________________
Verfasst am: 15.06.2009, 11:50
Titel: Funktioniert leider immer noch nicht ganz
Hallo,
danke für den Code.
Ich weiss nicht, ob ich mich vielleicht unglücklich ausgedrückt habe.
Wenn ich jemanden verärgert, oder vielleicht sogar beleidigt haben sollte, dann entschuldige ich mich hiermit dafür.
Meine Absicht war es jedenfalls nicht!
Der Obige Code funktioniert nicht, es kommt folgende Fehlermeldung:
??? Error using ==> textscan
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in ==> Punkte_in_Kommas at 4
C = textscan(fid,'%s %s %s %s','delimiter',';');
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
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.