|
|
einen Trigger in eine Tabelle einfügen und bearbeiten |
|
ml-beginner |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 27.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2009, 22:37
Titel: einen Trigger in eine Tabelle einfügen und bearbeiten
|
 |
Hallo, bin erste seit ein paar Tagen bei Matlab!
Mein Problem:
Ich habe Werte x, y, z und einen Referenzsignal, wenn das Referenzsignal den wert 50 übersteigt, dann soll in der Ursprungstabelle eine 1 stehen in einer neuen Zeile und die 100 Werte vor der 1 und 200 werte nach der 1 sollen in eine neue Tabelle kopiert werden (als Block, weil es einen zeitlichen Verlauf hat) . Es können immer wenn das Referenzsignal überschritten wird eine neue Tabelle angelegt werden oder aber auch nur eine Tabelle und die Werte kommen alle untereinander.
Die Syntax für datei öffnen und tabelle erzeugen ist bekannt, aber wie kann ich den Code für finde alle über 50 und setzte 1 und kopiere 100 vor und 200 nach der 1???
Das ist mein Problem!
Ich danke schon mal jetzt für Eure Antworten!
Mfg
[/code]
|
|
|
|
|
ml-beginner |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 27.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2009, 08:00
Titel:
|
 |
OK, wenn es zu komplex ist, dann eine vielleicht einfachere Frage:
Wenn ich in einer Spalte einen Wert gefunden habe, wie kann ich einen Programm schreiben das mir 100 Werte vor diesem Wert und 200 Werte nach diesem Wert als ein Block kopiert und diese mir in eine neue Spalte oder Tabelle einfügt?
Den rest bastelle ich mir schon zusammen...
Danke!
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 28.01.2009, 11:23
Titel:
|
 |
Hallo ml-beginner,
hier mal ein kleines Beispiel:
Wenn es nicht allzu oft vorkommt, dass die 50 überschritten wird, geht es ganz gut mit der for-Schleife. Sonst kann man das auch noch vektorisieren. Wenn die 50 nur einmal überschritten wird (-> ref monoton), reicht der obere Abschnitt ohne die Schleife.
Herzliche Grüße
Bijick
PS: Fragen mit Beispielcode werden im Allgemeinen schneller bearbeitet.
_________________
>> why
|
|
|
Strauße |

Forum-Fortgeschrittener
|
 |
Beiträge: 57
|
 |
|
 |
Anmeldedatum: 07.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2009, 11:29
Titel:
|
 |
Puh komme mit deiner Fragestellung nicht so ganz klar, hier mal ein kleines Beispiel:
Das müsste eigentlich funktionieren, wenn es das ist was du suchst
|
|
|
Strauße |

Forum-Fortgeschrittener
|
 |
Beiträge: 57
|
 |
|
 |
Anmeldedatum: 07.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2009, 11:31
Titel:
|
 |
zu langsam...
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.01.2009, 21:55
Titel:
|
 |
|
 |
|
Erstmal vielen dank für Eure Antworten!!!
Richtig coole Lösungen.
@Strauße: Komme gerade mit Deine Lösung nicht zu recht, muß mal eine Nacht drüber schlafen.
@Bijick: Genau so habe ich es mir vorgestellt, danke! Muß noch etwas daran herumschrauben, aber schon sehr cool.
Aber an den Richtigen Datensätzen komme ich erst morgen wieder dran, und dort habe ich leider keinen Intenetzugriff, daher ausdrucken und dort ausprobieren!
Hier nochmal das Problem:
Es wurden Schwingungen gemessen, d.h. Sinuswellen.
Messtabelle hat a, b, c werte und ref wert, da acuh viel Rauschen gemessen wurde, muß man das erstmal alles los werden.
Daher, wenn ref über 50 geht, weil dann ist es ein definierter Impuls, dass ich zum auswerten brauche. Und da ich das abklingen und aufsteigen Brauche, daher die werte 100 vor ref und nach ref.
Also, wenn über 50, dann alle werte "a, b, c und ref" kopieren und in eine neue Tabelle einfügen.
Es ist ein Datensatz vom 0.5 Mio werten mal 4 Reihen, daher
1. schaft es Matlab überhaupt, wenn nicht dann muß ich zerstückeln
2. Vielleicht doch mit Vektoren arbeiten, oder?
So, jetzt mein neues Problem:
Ich habe die Daten als .dat, Origin oder als text dateien, wie kann ich es in eine Tabelle in Matlab einfügen oder in eine Matrix oder Stuktur, was wäre besser und wie geht es, bei der großen Menge?
Meine Ideen:
abstand ';';
newData=importdata(num2str(ort/name-der Datei), abstand);
obwohl ich beim Exportieren von Origin die Spalten dürch ";" getrennt habe, fügt Matlab die Werte als text in die Tabelle ein!
Sollte ich viellecht mit "textscan" arbeiten?
Wenn mit textscan, dann ein Bsp für eine Text datei die in eine <400x5 double> Matrix oder Tabelle eingefügt weden soll! Auch die Textdate besteht aus 5 Spalten die durch ";" getrennt sind und aus komma werte!
Ich danke euch für Eure Antworten!!!
Gruß
|
|
|
Bijick |

Ehrenmitglied
|
 |
Beiträge: 914
|
 |
|
 |
Anmeldedatum: 18.06.07
|
 |
|
 |
Wohnort: Nürnberg
|
 |
|
 |
Version: R2006b, R2008b
|
 |
|
|
 |
|
Verfasst am: 29.01.2009, 11:30
Titel:
|
 |
Hallo ml-beginner,
für die genauere Hilfe brauchen wir auch genauere Daten. Bitte poste mal einen kleinen Auschnitt aus der .dat- oder Textdatei. Davon hängt ab, wie man das einlesen muss. importdata ist für leichtere Fälle besser, für komplexere tendiere ich zu textscan.
Eine halbe Million Werte je Vektor sind erst mal kein Problem, es kommt noch darauf an, wie Du damit weiterarbeiten musst. Das sehen wir ja dann.
Dann wäre noch wichtig, wie oft circa die 50 überschritten wird. Eher 30 Mal oder eher 10000 Mal? Kann es vorkommen, dass sich die Bereiche überschneiden, die Du ausschneiden willst (d.h. Abstand der 50er in ref kleiner als 100 Werte)?
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
ml-beginner |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 27.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.01.2009, 21:42
Titel:
|
 |
|
 |
|
Hallo Bijick!
Leider hab ich kein Exambel von der Datei hier.
Also
1. die kleinste Datei ist 913MB groß, hab heute gemerkt das Matlab nicht mehr als 400 MB schaft, daher hab ich die Datei gesplittet mit Unix...hab den Rechner laufen lassen und bin nach hause!
So, hier ein beispiel der .dat Datei
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
TEXT TEXT TEST TEST TEXT
a/um b/um c/um ref 1Khz
0.234 3.0978 0.1233 23.0443 987
-0.7875 0.1232 -0.76543 80.34222 789
....
d.h auch die nachkomma stellen sind nicht immer gleich groß
-negative und positive werte sind durchmischt
und das ref signal wird 46 mal min überschritten, so viele Impulse muß es geben, aber das Problem habe ich mit einer IF-Scheife gelöst...
das grundgerüßt steht, vielleicht nicht schön Programmiert, aber dafür das es mein 5.Tag mit Matlab ist, finde ich es ganz gut.
So, jetzt schaffe ich leider nicht die Datei zu laden....
Wenn das noch steht dann läuft das ganze...
Danke!
Gruß
|
|
|
ml-beginner |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 27.01.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.02.2009, 09:25
Titel:
|
 |
Sorry, aber leider kann ich die genaue Datei hier nicht reinstellen...
Darf ich garnicht!!!
Aber, ist schon ok! Habe eine Lösung gefunden, auch wenn es nicht so obtimal Programmiert ist und auch mit for schleifen was eine weile dauert, ist es doch recht gut gelungen, dafür das es "mein erstes Matlab-Programm" ist
Danke, für Eure Hilfe, es war schon Richtungsweisend!!!
Gruß
|
|
|
|
|
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.
|
|