|
|
Aus mehrere Messungen filtern und zusammenführen? |
|
Mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2010, 21:35
Titel: Aus mehrere Messungen filtern und zusammenführen?
|
 |
|
 |
|
Hallo,
ich möchte nun gerne ein Skript in Matlab schreiben. Erfahrung in Matlab hatte ich ein Semester an der Uni und kann auch in C,C++
programmieren, guter Anfänger.
Was ich programmieren will:
Aus mehreren Messungen bestimmte Variablen aufrufen und überprüfen und zu einem gesamten Profil als Graph zusammenführen und plotten lassen.
genauer:
Ich möchte ein Skript schreiben, so dass ich auf ein bestimmtes Ordner auf meinem Desktop zugreife. In dem Orner sind viele einzelne Datein enthalten bzw. Messungen.
Ich möchte auf jede einzelne Messung zugreifen und dort einen bestimmte Variable aufrufen und überprüfen ob diese 0 oder 1 ist. Falls die Variable Messung auf 1 ist möchte ich ausgeben lassen wie lange diese auf 1 ist und welche Zeit vergeht bis die Variable wieder auf 1 springt.
Wenn möglich, möchte ich diese am Ende als einen gesamten Graphen plotten lassen, z.b ein bestimmtes Profil.
Könnt ihr mir vielleicht einen Tipp geben, wie ich am besten anfangen kann. Als Hauptbedingung ist hier eine if-Schleife geeignet oder??
Wäre für jede Info dankbar.
VG
|
|
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 13:01
Titel:
|
 |
Mit
kann man den Inhalt eines Ordner bestimmen.
Weiterhin muss man mit
den File Format erkennen.
Mit einer If-Abfrage kannst deine Bedingung einsetzen.
Und mit
kann man verschiedene Signale in einem Graph aufzeichnen.
Zum Einlesen von Dateien musst Du noch den Datei Typ mitteilen. Wenn es um Text Dateien geht, gibt es in Matlab genügend Read funktionen.
Ansonsten kannst du die Fragen noch genauer schildern, dann kommen bestimmt ein Paar Lösungen.
Viel Erfolg
Jose
_________________
Simulation
|
|
|
Mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 15:01
Titel:
|
 |
|
 |
|
Hallo,
danke erst mal für deine antwort. also folgendes:
1) ich habe ca. 20 Dateien in .dat format vorliegen. ca. 100 zeilen und 10 Spalten.
2) ich möchte auf 3 bestimmte spalten zugreifen.
Dabei möchte ich das zeile für zeile geprüft wird, ob eine bestimmte Variable den Wert 0 oder 1 hat.
Falls 1, dann soll er mir zu dieser zeile auch die aktuelle Zeit angeben, die in einer anderen Spalte steht und noch einige andere Variablen in anderen spalten.
Falls 0 in der zeile steht, dann soll er weiter springen.
Was noch ganz wichtig ist für mich, dass wenn eine 1 in der Zeile steht, dann soll er mir ausgeben wie lange es gedauet hat bis die nächste 1 kam.
Diese Vorgehensweise für alle Dateien.
3) nach nun alle werte vorhanden sind, soll er mir am ende die jeweiligen werte die er ausgegeben hat wo eine 1 stand, zu einer Kurve zusammenführen und plotten.
Hoffe ich konnte nun etwas licht ins dunkle bringen:-)
Die jeweiligen spalten muss man in Matlab an Variablen übergeben um deren Inhalt zu bearbeiten etc. oder?
Soll an eine for-schleife benutzen damit er alle datein durchläuft?ich habe mal gelesen, dass es eine "cell" funktion gibt, die es erleichtert??
Für alle die mir helfen bzw. helfen wollen, ein dickes DANKESCHÖN
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 16:04
Titel:
|
 |
Was noch besser wäre, eine dat-file als Beispiel anzuhängen! So kann man zielnah die Aufgabe lösen.
Eine dat-Datei wird einfach als Text datei betrachtet.
_________________
Simulation
|
|
|
mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 16:47
Titel:
|
 |
leider muss ich die daten vertrauensvoll behandeln.
aber man kann das doch so vorstellen bzw. ich werde es auch so erstmal testen, dass ich mir eine excel Liste erstelle und diese als txt-file abspeichern werde.
bsp. ca. 100 zeilen und 10 Spalten. ich will nur 3 Spalten zyklisch ansprechen.
wenn du mir das an diesem beispiel erklären könntest, dann könnte ich es ja leicht übertragen:-)
vielen dank.
vg
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 18:11
Titel:
|
 |
Man kann entweder beim Lesen der Datei jede Zeile prüfen oder erst die Datei lesen und jede Zeile prüfen. Ich würde die zweite bevorzugen.
häng mal einfach eine dummy datei. Dann wird s einfacher.
_________________
Simulation
|
|
|
math123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 18:26
Titel:
|
 |
So nun habe ich es als anghängt.
In abhängigkeit der Variable K, soll überprüft werden, wann eine 1 Steht. dann soll der Kilomterstand ausgegeben werden und wie lange es gedauert hat bis die nächste 1 kommt.
Beschreibung: |
|
 Download |
Dateiname: |
Liste.txt |
Dateigröße: |
1.01 KB |
Heruntergeladen: |
374 mal |
Beschreibung: |
|
 Download |
Dateiname: |
Liste.txt |
Dateigröße: |
1.01 KB |
Heruntergeladen: |
350 mal |
|
|
|
mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.07.2010, 19:46
Titel:
|
 |
Ihr wolltet alle die datei haben und nun hilft keiner mehr:-(
wie kann ich den das txt-file reinladen?Muss ich den Pfad angeben?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 00:12
Titel:
|
 |
Hallo Mathe123,
es ist immer animierender und einfach konkrete Fragen zu beantworten, statt eine eher allgemeine Idee in eine programmierbare Struktur zu bringen. Wenn Du postest, was Du bereits programmiert hast, ist es wesentlich leichter Dir zu helfen.
Eine Frage mehrfach zu posten bringt dagegen im Allgemeinen nicht mehr Antworten.
Gruß, Jan
|
|
|
mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 01:36
Titel:
|
 |
Hallo Jan,
also ich bin jetzt schon fast seit dem ganzen tag drann und konnte nicht mal die Daten aus der txt datei laden:-).. .
In matlab gibt es so viele befehle etc.
Also da ich die datei hochgeladen habe, müsstest du sie haben.
wenn ich nun den Befehl:
[a, b, c] = textread ('Liste.txt', '%d %d %d', 'headerlines', 1)
eintippe, warum kommt immer wieder ein fehler?
Zudem ist ja das Problem, dass ich noch nicht anfenagen haben zu programmieren, da ich nicht weiß wie ich in matlab anfangen soll.
habe jetzt so vieles zu den einlese funktionen gelesen, dass ich gar nicht mehr weiß welches ich nehmen soll.
Am meisten habe ich im Forum die Funltionen fid...fopen etc. entdeckt. Wann benutzt man diese bzw, wann benutzt man textread oder load?
Welche ist für meine Aufgabe (s. oben) am besten geeigent.
Wäre ssuper, wenn ihr mir eine kleine hilfestellungen bzw. etwas beim Anfang helfen könntet. der rest kommt dann
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 02:52
Titel:
|
 |
Hallo Mathe123,
mathe123 hat Folgendes geschrieben: |
Also da ich die datei hochgeladen habe, müsstest du sie haben.
|
Du hast 2 Datein hochgeladen.
mathe123 hat Folgendes geschrieben: |
wenn ich nun den Befehl:
[a, b, c] = textread ('Liste.txt', '%d %d %d', 'headerlines', 1)
eintippe, warum kommt immer wieder ein fehler?
|
Bitte teile mit, welcher Fehlermedlung erscheint, weil darin ja erklärt wird, warum der Fehler auftritt. Einfach nur zu erwähnen, dass "ein Fehler kommt", macht uns das Raten schwer.
Bei mir läuft's. So falsch kannst Du also nicht liegen. Der Schritt war auch schon mal gut: Zeige eine Code-Zeile und poste die Fehler-Medlung oder den Unterschied zwischen Deinen Erwartungen und den erzielten Ergebnissen.
Wenn Du den Abschnitt "Getting started" aus den Manual gelesen hast, solltest Du mit den Einlese-Funktionen etwas vertrauter sein. Es wäre nicht sachdienlich, wenn ich hier das Manual nochmal abkopiere.
Gruß, Jan
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 10:01
Titel:
|
 |
Deine Dat-Datei sind komprimierte Textdatei, sie sind nicht einfach zu lesen und sie haben keine einfache Struktur.
Schau Dir dieses Tools von Matlab Exchange.
http://www.mathworks.com/matlabcent.....-import-tool-and-function
Dabei können mdf-Dateien (measure data format) geladen werden.
Ich hoffe es wird Dir helfen.
Wenn Du z. B. eine Textdatei mit dem Header und 3 Spalten selber definierst, dann lässt sie sich mit der üblichen Read funktionen einlesen, weil sie nicht komprimiert sind. Dadurch wirst du dann den Unterschied zwischen den beiden Dateien feststellen.
Viel Erfolg.
_________________
Simulation
|
|
|
Mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 11:07
Titel:
|
 |
Hallo Jan,
also ich habe es jetzt hinbekommen. das mit dem txt einlesen klappt.
so nun möchte ich mich schritt für schritt an die Aufgabe bzw. an das Skript, was ich erstellen will, ranarbeiten.
So nun werde ich erstmal nur für eine txt.datei einen skript schreiben, dass er das macht was ich wollte (s. oben).
Dann poste ich es dir wieder. Hoffe du hilfst mir dabei, will das unbedingt heute hinbekommen:-).
PS: "Getting started", in der production help habe ich viele Themen zu diesem gefunden, welche muss ich auswählen?
Und gibt es ein skript im Internet oder ne Seite wo die unterschiedlichen Einlese funktionen beschrieben sind. Weil ich lese einiges mit Fid..foap und dann textread etc.
Wäre cool wenn es so etwas geben würde, wo die funktionen zusammengefasst sind.
vielen dank.
lg
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 12:05
Titel:
|
 |
Hallo,
Es ist auf jeden Fall immer ratsam, das gesamte "Getting Started" gelesen zu haben, bevor man startet zu Programmieren. Irgendwann benötigt man wirklich jede der Informationen, die man darin findet. Matlab ist eine umfangreiche Sprache, und deshalb muss man einfach eine Menge Zeit investieren, um sie benutzen zu können.
"Ich lerne dieses Wochende mal Chinesisch?" ... :-)
Gruß, Jan
|
|
|
mathe123 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2010, 12:46
Titel:
|
 |
was meinst du mit getting started?
wenn ich das in der hilfe eintippe bekomme ich 1000 Einträge:-).
soll ich dann lieber von anfang an mit fid, fopen arbeiten, anstatt mit for und so?
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|