Bei TEXTSCAN gibt es folgende Optionen: TreatAsEmpty und EmptyValue, um NULL mit 0 zu ersetzen;
Außerdem kann man mehrere Delimiter angeben
Code:
data = sprintf('13.74000\t12.36000\t-100.0000\t1.38000\t0.00000\tNULL\tNULL\n13.72000\t12.35000\t-100.0000\t1.37000\t0.00000\tNULL\tNULL\n13.72000\t12.34000\t-100.0000\t1.38000\t0.00000\t14.1\t116.2')
M = textscan(data,'%f%f%f%f%f%f%f','Delimiter',{'\t','\n'},'TreatAsEmpty', 'NULL', 'EmptyValue',0)
In der sechsten und siebten Spalte befinden sich jetzt die Nullwerte zwischen den Messwerten die ich habe. Ich möchte nun gerne in den jeweiligen Spalten die aufeinanderfolgenden zwei Nullen durch interpolierte Werte zwischen dem Vorgänger und dem Nachfolger ersetzen.
So dass also keine Nullen mehr vorhanden sind, sondern die Spalten quasi vervollständigt werden durch Interpolation. Wichtig ist dass wirklich jede Spalte für sich betrachtet wird da kein Zusammenhang zwischen den Spalten besteht.
Mit den klassischen Funktionen interp1 und interp2 bin ich nicht weitergekommen.
Falls es mal jmd braucht, es funktioniert zwar, ist aber recht langsam und wie ich finde etwas umständlich. Wenn jmd einen Vorschlag zur Vereinfachung hat, sehr gerne Ansonsten erstmal-Danke fürs mitdenken.
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.