|
|
|
Bestimmte Werte und deren Anteile im Vektor bestimmen |
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 12:16
Titel: Bestimmte Werte und deren Anteile im Vektor bestimmen
|
 |
Folgendes Problem: Ich habe ein Geschwindigkeitsprofil in Form eines Vektors aus welchem Ich die Werte der Geschwindigkeitssprünge und die Dauer der gefahrenen Geschwindigkeit bestimmen möchte.
Beispiel: v=[10 10 10 10 30 30 30 5 5 5 5 5]
Ich habe es schon geschafft die Werte der Geschwindigkeitsänderung zu bestimmen.Also habe ich einen Vektor der ungefähr so aussieht--> x=[10 30 5]. nun möchte ich herausfinden wie lange das Fahrzeug mit den jeweiliegen Geschwindigkeiten fährt. Im Sinne von mit 10m/s fährt es 4s,danach mit 30m/s 3s lang,danach mit 5m/s 5s usw.
Wie mache ich das??Ich habe es mittlerweile geschafft die Gesamtanteile herauszukriegen,also z.B mit 10m/s insgesamt 30 min,mit 30m/s insgesamt 1Stunde. Das ist nicht ganz was ich brauche.Ich benötige die einzelnen Abschnitte der Geschwindigkeiten.
Ich hoffe jemand kann mir helfen.
|
|
|
|
|
|
| Vito |

Forum-Guru
|
 |
Beiträge: 315
|
 |
|
 |
Anmeldedatum: 02.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 12:42
Titel:
|
 |
Hi,
suchstd du sowas:
Gruß,
Vito
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 13:09
Titel:
|
 |
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 13:21
Titel:
|
 |
Danke erstmal für die Mühe. Leiderpasst das mit unique nicht ganz da die werte dadurch anders geordnet werden.
Wie gesagt die Wertsprünge habe ich schon in einem Vektor abspeichern können,nur die Dauer kriege ich nicht hin.
Das mit duration_time muss ich später ausprobiereren,bin noch auf der Arbeit.Könnte hinhauen.
|
|
|
|
| Vito |

Forum-Guru
|
 |
Beiträge: 315
|
 |
|
 |
Anmeldedatum: 02.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 13:32
Titel:
|
 |
Hi,
probier folgendes:
Gruß,
Vito
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 13:54
Titel:
|
 |
histc(values, edge) (hist erstellt ja einen Plot) verlangt offenbar einen sortierten edge-Vektor. Die Verwendung von histc(v, Wertsprünge) wird dir nicht die gewünschte Reihenfolge liefern. Wenn du tatsächlich histc() verwenden willst, wirst du wohl mit einer Schleife jeden Wertesprung separat aufrufen müssen, damit die Reihenfolge erhalten bleibt, die du haben willst. Im Übrigen ist dieser Ansatz ungeeignet, wenn v so aussieht:
v=[10 10 10 10 30 30 30 5 5 5 5 5 10 10]
...also zum Schluss die Geschwindigkeit nochmals für 2 Sekunden 10 m/sec beträgt.
|
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.05.2012, 17:46
Titel:
|
 |
Ja also wie gesagt die Gleiderund bzw die Bestimmung der Wert habe ich mit
gelöst.Das ist nicht mein wesentliches Problem.Und ja ich habe mir schon gedacht dass ich das mit einer Schleife machen sollte,da ich aber nicht über die nötige Kenntnis verfüge,kreige ich es nicht gebacken. Ich habe hier im Forum am sowas in der Art gefunden. Die Schleife macht aber wieder nur den Gesamtanteil der Werte.
Habt ihr ne Idee?
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 09:10
Titel:
|
 |
Hallo,
einen Punkt sollten wir zuvor noch klären. Kann dein v so aussehen:
v=[10 10 10 10 30 30 30 5 5 5 5 5 10 10] ?
Hier taucht eine 10er Gruppe mehrfach auf. Wenn dieser Fall nicht eintreten kann, so gibt es zielführende Vorschläge in diesem Thread.
Andernfalls muss man sich wohl etwas neues überlegen.
Grüße, MaFam
|
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 09:25
Titel:
|
 |
Hi,
sorry ich vergessen das zu erwähnen. Ja der Vektor kann nicht nur so aussehen,sondern er sieht genau so aus oder hat diese Form.Die Werte tausche an mehreren Stellen auf und weisen auch unterschiedliche Dauer bzw Perioaden auf.Das ist ja genau das was mir Probleme bereitet.
Grüße
|
|
|
|
| Vito |

Forum-Guru
|
 |
Beiträge: 315
|
 |
|
 |
Anmeldedatum: 02.11.09
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 09:34
Titel:
|
 |
Hi,
meinst sowas:
Gruß,
Vito
|
|
|
|
| MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 09:41
Titel:
|
 |
Gut, dann hier ein Vorschlag:
Gehe über alle Elemente des Vektors und
1. Speichere initial v(1) in einer Matrix -> M(1,1)=v(1) und initial die Anzahl mit M(1,2)=1. k sei initial 1.
2. Wenn v(i+1) gleich v(i), dann M(k,2)=M(k,2)+1, sonst setze M(k+1,1)=v(i+1).
3. Erhöhe k um 1, wenn v(i+1) ungleich v(i).
Das ergibt eine Matrix mit dem Wert (Repräsentanten) einer Gruppe in der ersten Spalte und dessen Anzahl, also der kumulierten Zeit, in der zweiten Spalte.
|
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 09:59
Titel:
|
 |
Vielen Dank erstmal an euch Beide,werde beide Möglichkeiten sofort ausprobieren sobald ich zu hause bin.
Ich hätte da noch eine kleine Bitte.Ich habe einen zweiten Thread namens "Lastkollektive" zu einem anderen Problem aufgemacht,welches ich mittlerweile schon fast aufgegeben habe.Vielleicht könntet ihr mir da ja ebenfalls helfen,wäre nett.
|
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.05.2012, 21:27
Titel:
|
 |
Danke noch einmal,leider hat nur die Lösung von MaFam geklappt.Wie ich ja schon vorher geschrieben hatte geht es nicht mit dem unique Befehl,da dieser die Werte zwar findet,diese aber umordnet. Und hist passt auch nicht da nur die letzten Perioden der Werte angezeigt werden.
Am Ende sieht der Code so aus:
danke,wart ne große Hilfe
|
|
|
|
| birdman |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.05.2012, 17:58
Titel:
|
 |
Hi,
Okay Leute es ist doch noch ein Problem aufgetaucht.Die Werte werden so schon ganz gut ausgewertet. Aber ich brauche jetzt nicht nur die Sprungwerte bzw deren kumulierte Zeit, sondern beide Zeitwerte .
nach dem Beispiel-->
10-->1
10-->4
30-->5
30-->7
5 -->8
5 -->11
ist das möglich??hat jemand eine Idee??
|
|
|
|
|
|
|
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.
|
|