ich habe ein Programm geschrieben, indem ich eine Funktion auswerte.
So sieht mein Code aus:
Code:
function peakauswerten_Callback(hObject, eventdata, handles) % hObject handle to peakauswerten (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global Startwert Endwert S Startwert_double Endwert_double x
Startwert = get(handles.Startwerteingabe, 'String')
Endwert = get(handles.Endwerteingabe, 'String')
Startwert_double = str2double(Startwert)
Endwert_double = str2double(Endwert)
Die Daten werden zum Schluss in eine xls-Datei geschrieben. Diesen Vorgang möchte ich beliebig oft wiederholen können, ohne das die Daten in der xls Datei verloren gehen. Außerdem sollen die neuen Werte in der Datei übernommen werden, sodass für jeden Durchlauf Werte festgehalten werden. Ich weiß´nicht, wie ich das realisieren soll. Wenn der Code einmal durchlaufen ist, drückt man auf einen Button ''nächster Peak'' und man muss wieder einen neuen Start und Endwert eingeben. Ich war am überlegen, ob ich eine Schleife drum rum bastel, allerdings funktioniert das nicht, da man ja immer wieder aus Funktion raus gehen muss(Button drücken). Kann mir hier jemand weiter helfen. Ich hoffe man versteht so ungefähr mein Problem, weiß gerade nicht wie ich es besser beschreiben soll.
Ich versuche es gerade indem ich eine variable k hochzählen lasse.
k ist beim ersten mal 1.
Wie kann ich Matlab sagen das er erst in der k-ten Zeile anfangen soll zu schreiben? In der Zeile sollen diese Werte enthalten sein.
Ich verstehe die Frage nicht ganz. Dein "Excel"-File ist ein Tab-separiertes File, richtig? Dann kannst Du neue Daten am ende anhängen. Aber in einer bestimmten Zeilen oder Spalte anfangen ist nicht möglich.
ich habe eine Excel-Datei. Diese wird beim ersten Mal beschrieben, indem die erste Zeile mit Wörtern beschrieben wird, die jeweils mit einem Tab getrennt sind. Darunter werden dann die Werte gespeichert, für einen Druchgang. Auch mit Tab getrennt. Jetzt gebe ich neue Start und Endwerte ein, die alten werden überschrieben. Jedoch sind sie in der Excel-Datei noch gespeichert. Diese neuen Werte möchte ich jetzt eine Zeile darunter haben. Also praktisch Zeile 1 die Wörter, Zeile 2 die ersten Werte, und Zeile 3 die aktuellen Werte. Hoffe das wurde verständlicher, weiß leider nicht, wie ich das besser beschreiben soll.
Obwohl Excel aus Gründen der Rückwärtskompatibility immer noch TAB-Separierte Dateien mit der Extension ".xls" direkt lädt, handlet es sich dabei trotzdem nicht um "Excel"-Daten, sondern es sind Text-Dateien, die man genauso gut auch mit dem Matlab-Editor öffnen kann.
Zitat:
Jetzt gebe ich neue Start und Endwerte ein, die alten werden überschrieben. Jedoch sind sie in der Excel-Datei noch gespeichert.
Das verstehe ich nicht. Wieso sind die Werte noch vorhanden, obwohl sie überschrieben worden sind?!
Möchtest Du Zeilen in ein Text-File einfügen?
Dann musst Du das gesamte File ins RAM-Einlesen, in einen Cell-String umformen, die Zeile einfügen und das File wieder schreiben. Das ist sehr zeitraubend und der Aufwand steigt quadratisch mit der Anzahl der Zeilen.
Massive viel schneller wäre es, die Zilene zunächst unten anzuhängen und die datei erst ganz zum Schluß einmalig "umzudrehen".
Der benutzer gibt einen Start und Endwert ein, das x wird berechnet und anschließend dann in meiner Excel Datei gespeichert. Das sieht dann so aus:
Startwert Endwert A s xc
2500 3000 0.02 0.52 0.68
Dies wird dann in der Excel-Datei abgespeichert und bleibt da auch drin.
Jetzt wird die Funktion nochmal ausgeführt. Der Benutzer gibt einen anderen Start und Endwert ein. Es werden neue x werte berechnet und die alten Dateien in Matlab überschrieben. Im Moment werden dann auch meine Excel Liste überschrieben, ich will aber das die neuen Daten dann darunter stehen. Also so:
Startwert Endwert A s xc
2500 3000 0.02 0.52 0.68
3600 4000 .... ..... .....
Ich hoffe es ist jetzt besser rübergekommen. Sry, aber steh im Moment echt aufn Schlauch.
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.