tname= interp1(daten{1,1},daten{1,4},x,'spline'); %bei 'linear' (=default) wird nicht extrapoliert!!
fname= interp1(daten{1,1},daten{1,5},x,'spline'); %bei 'linear' (=default) wird nicht extrapoliert!!
Unix_neu3=interp1(daten{1,1},daten{1,2},x,'spline');
DeviceID3=daten{1,3};
DeviceID3=cellstr(DeviceID3(1,1));
Das Originalfile ist angehängt. Ich habe jetzt schon herausgefunden, dass in Zeile 1158 und 1159 des Originalfiles zweimal der gleiche Zeitstempel vorhanden ist. Kann ich für diesen (sehr seltenen) Fall eine Sicherung einbauen, durch die die doppelte Zeile gelöscht wird?
Wenn ja, an welcher Stelle? Vor dem Interpolieren, oder?
Ich habe bisher schon sehr viele Daten ausgewertet und das ist jetzt zum ersten Mal der Fall. Und ich möchte nicht jede Datei vorher auf doppelte Zeilen überprüfen, das ganze soll eigentlich automatisiert ablaufen.
Hat jemand eine Idee, wie ich das Problem lösen könnte?
Das Originalfile ist angehängt. Ich habe jetzt schon herausgefunden, dass in Zeile 1158 und 1159 des Originalfiles zweimal der gleiche Zeitstempel vorhanden ist. Kann ich für diesen (sehr seltenen) Fall eine Sicherung einbauen, durch die die doppelte Zeile gelöscht wird?
funktioniert es in meinem Fall super, da bei mir auch die komplette Zeile identisch ist. Schwieriger wäre es dabei, wenn nur der Zeitstempel in der ersten Spalte gleich wäre. Da würde ich dann wieder auf Haralds Lösung (entsprechend angepasst) zurückgreifen. Diese funktioniert auch, wenn nur der Wert in der ersten Spalte identisch ist.
funktioniert es in meinem Fall super, da bei mir auch die komplette Zeile identisch ist.
Edit: Es sollte funktionieren... Hatte bei meiner Probe eine vereinfachte Matrix benutzt...
Da meine Variable "daten" ein 1x5 cell mit 4 doubles und einem cells (Spalte 3) ist, funktioniert es nicht, da, wie in der Hilfe steht:
The 'rows' option does not support cell arrays.
Einfach umwandeln in eine Matrix geht nicht, da der cell in Spalte 3 strings enthält...
Habe jetzt ein "workaraound" geschrieben, der etwas komplizierter ist, aber funktioniert:
Code:
DeviceID3=daten{1,3}; % ID abspeichern, ist immer die gleiche
DeviceID3=cellstr(DeviceID3(1,1));
daten(3)=[]; % Spalte mit ID-Strings löschen
daten=cell2mat(daten) %In Matrix umwandeln
daten= unique(daten,'rows'); % doppelte Zeilen löschen, funktioniert nur, wenn komplette Zeile gleich... % doppelt = diff(daten(:,1)) <= 0; % doppelte Zeilen löschen, wenn nur Zeitstempel gleich... % daten(doppelt, = [];
Vielleicht hilft es ja jemand, der ein ähnliches Problem hat...
Einstellungen und Berechtigungen
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.