Verfasst am: 18.12.2012, 14:25
Titel: Filtern von Wertebereich und anschließend plotten
Hallo Leute,
hoffe ihr könnt mir helfen bin Matlab Anfänger. Nach hoffnungsloser Suche im Inet bräuchte ich eure Hilfe.
Folgendes Problem:
Ich lese Messwerte (txt. Datei) in Matlab ein und würde gerne in einer bestimmten Spalte Werte filtern (Werte liegen zwischen 28-32, 38-42, 48-52, 58-62,....108-112 und anschließen von einem festen Wert zb. die werte die zwischen 28-32 liegen mit 30 subtrahieren (fehlerberechnung) und anschließen plotten.
Wie mache ich das am besten?
Das einlesen der txt Datei erfolgt mit dem Code:
fid = fopen('C:.....Datei.txt');
strrep(fid,'.',',');
tline = fgetl(fid);
while ischar(tline)
disp(tline)
tline = fgetl(fid);
end
fid = fopen('test.txt');
indat = fread(fid, '*char'); %%%nur relavant wenn dein deciamtrennzeichen
indat(indat==',') = '.'; %%%ein punkt ist wie bei mir
Daten = textscan(indat,repmat('%f', 1, 11),'delimiter','\t');
fclose(fid);
Bei condition sagst du welche spalte deiner tabelle welchen wertebereich haben darf und unter wertebereich laesst du dir die kompletten zeilen ausgeben wo die gewaehlte spalte deiner anforderung entspricht!
zeilen und spalten kannst du einfach drehen indem du :,1 1,: machst
was passiert denn wenn du den code hier oder oben bei dir reinkopierst! du musst ja eine fehlermeldung bekommen wenn es nicht klappt? was mich jedoch verwundert wuerde weil es wiegesagt tadelos hier funktioniert!
Poste doch mal bitte deinen code oder deine fehlermeldung!
also ich wuesste nicht woran es liegen koennte, wenn es nicht das decimaltrennzeichen ist. Anbei ist mein ergebnis! hast du die test.txt im selben ordner wie deine m.file
ich bin eben mal deine matlab durchgegangen! es ist wohl eindeutig das koma oder der punkt oder die funktion wertebereich findet keine zahlen in der spalte 7 die entweder zwischen 0 und 40000 liegen oder zwischen 40000 und 100000! zumal du eine ganz andere datei einliesst!!! deine ist ja deutlich laenger als die test.txt die du bereit gestellt hast!
Zuletzt bearbeitet von keywee am 18.12.2012, 16:42, insgesamt einmal bearbeitet
aber du liest nicht die test.txt ein sondern eine andere datei ! und was ist dein decimaltrennzeichen punkt oder koma? je nachdem musst die den ersten code oder den zweiten nehmen den ich oben gepostet habe! denn dein problem liegt ganz eindeutig beim einlesen der tabelle!
entpacke mal die datei anbei! oeffne matlab und waehle die m.file
ueber den tabellen steht ein e^x du solltest vll lieber mal in den workspace gucken anstatt nur mit der cmd zu arbeiten!! du kannst das ganze ja auch jederzeit wieder exportieren...ich kenne ja nicht die genauen anforderungen an dein programm... und das spalten darunter aufgelistet werden liegt einfach nur am zeilenumbruch...mach mal vollbild und lass laufen
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.