|
|
Zeilen in Matrix in Abhängigkeit von Berechnung einfügen? |
|
alpha1408 |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 10.11.11
|
 |
|
 |
Wohnort: Braunschweig
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 14:22
Titel: Zeilen in Matrix in Abhängigkeit von Berechnung einfügen?
|
 |
Hallo zusammen!
Ich habe ein Problem, welches mich an meine programmiertechnischen Grenzen bringt.
Ich habe einen v-t-Schrieb eines Fahrzeugs in einer 26540x2 Matrix. Dabei ist in der ersten Spalte die aktuelle Geschwindigkeit gegeben, in der zweiten Spalte steht die aktuelle Dauer in Schritten von 0,075s.
Mein Ziel ist es, bei Beschleunigungen > als 1m/s² zwischen die beiden entsprechenden Zeilen eine zusätzliche Zeile einzufügen mit t=0,075 und v=(v_vorher+v_nachher)/2. Dadurch soll die Beschleunigung in diesem Abschnitt halbiert werden.
Wirklich weit bin ich noch nicht gekommen, bisher habe ich nur folgendes:
Im Endeffekt möchte ich den Zyklus partiell an den Stellen um einen weiteren zwischenschritt strecken, an denen die Beschleunigung zu hoch ist.
Hat jemand eine Idee?
Danke und VG,
Micha
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 15:08
Titel:
|
 |
was meinst du mit dauer? ein beispiel datensatz währe hilfreich gewesen. mit sachen wie
kann ich nichts anfangen ^^.
wenn du mit dauer meinst wie lange die geschwindigkeit v gefahren wird was passiert dann beim beschleudingen.?
ist die dauer dann immer 0.075? falls ja bekommst du mit diff dort 0 was zu einer unendlichen beschleunigung in der zeile
führt. oder meinst du mit dauer nur die systemzeit die in schritten von 0.075 läuft.
26k einträge sind nicht viel. die kannst du einfach mit einer while oder forschleife abarbeiten.
ps. clear all sollte man nicht verwenden wenn man nicht muss. warum wurde hier im forum schon öfter erklärt
_________________
richtig Fragen
|
|
|
alpha1408 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 10.11.11
|
 |
|
 |
Wohnort: Braunschweig
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 16:27
Titel:
|
 |
Hallo Winkow,
danke für deine schnelle Antwort. Du hast recht, natürlich läuft die Systemzeit in Schritten von 0,075 s und es steht nicht überall 0,075 drin.
Schleife ist gut und schön. Mein Problem liegt eher dadrin, mit welchen Befehlen ich die entsprechende Zeile an der entsprechenden Stelle einfügen kann. Dabei müssen ja auch die gesamten nachfolgenden Werte im Zeitschrieb geändert werden
Danke schonmal für deine Überlegungen!
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 16:50
Titel:
|
 |
was du mit der zeit machen willst ist mir immernoch nicht klar. beispiel datensätze sind wirklich hiflreich bei sowas.
_________________
richtig Fragen
|
|
|
alpha1408 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 10.11.11
|
 |
|
 |
Wohnort: Braunschweig
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 17:03
Titel:
|
 |
Hallo Winkow,
anbei ist ein gekürzter Beispieldatensatz. Den kompletten Satz darf ich nicht rausgeben, aber letztendlich ist es ja das gleiche.
Du wirst erkennen, dass wenn in der Geschwindgigkeitsspalte (ist noch in km/h angegeben) eine zusätzliche Zeile eingefügt wird, auch die Spalte mit der Zeit verlängert werden muss. Aber das geht eventuell auch am Ende, oder?
Vielen lieben Dank bereits für deine Hilfe!
VG,
Micha
Beschreibung: |
|
 Download |
Dateiname: |
Cycle.xls |
Dateigröße: |
72.5 KB |
Heruntergeladen: |
237 mal |
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 17:15
Titel:
|
 |
was soll mit der zeit passieren? soll der rest einfach nur nach hinten verschoben werden? das verfälscht ja die daten da dann die zeiten nicht mehr zu den geschwindigkeiten passen^^ du kannst die neuen zeiten genau so einfügen wie ich die geschwindigkeiten eingefügt habe in meinem beispiel.
bei mir bin ich davon ausgegangen das sich einfach alles um 0.075 nach hinten verschiebt.
dann kannst du nachträglich den neuen zeitvektor einfach mit
erzeugen.
_________________
richtig Fragen
|
|
|
alpha1408 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 10.11.11
|
 |
|
 |
Wohnort: Braunschweig
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 17:25
Titel:
|
 |
Vielen Dank, ich probiere es mal aus
Wäre ich allein nicht drauf gekommen
EDIT:
Error using horzcat
Dimensions of matrices being concatenated are not consistent.
Error in Zyklenanpassung (line 13)
v=[v(1:k),(v(k+1)+v(k))/2,v(k+1:end)];
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 20.01.2014, 17:51
Titel:
|
 |
du must mein beispiel schon an deine daten anpassen ^^ ich hab einen zeilenvektor als beispiel verwendet. du einen spalten vektor. das geht auch aus der fehlermeldung herraus ^^
_________________
richtig Fragen
|
|
|
alpha1408 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 10.11.11
|
 |
|
 |
Wohnort: Braunschweig
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.01.2014, 16:27
Titel:
|
 |
|
 |
|
Hallo Winkow,
hast natürlich Recht
Ich habe eben mal das Programm getestet und es macht noch nicht ganz das, was ich eigentlich möchte.
Ich gebe dir mal ein konkretes Beispiel aus der Excel, die ich hochgeladen habe:
Zeile 57 und 58 sehen ja so aus:
0.093463410 4,200
0.373853620 4,275
Daraus folgt eine Beschleunigung von 3,73 m/s^2.
Ich hätte gerne folgendes stehen:
0.093463410 4,200
0.140195105 4,275 <--- Zwischenschritt
0.373853620 4,350
Ich glaube, dass durch die While-Schleife jeder Wert soweit angepasst wird, bis a<1 ist. Sehe ich das richtig?
Ziel war aber, zwischen jeden Schritt, bei dem a>1 ist, nur einmal einen Zwischenschritt zu setzen, unabhängig vom Ergebnis.
Mit deiner Programmierung sind meine Beschleunigungen jetzt zu gering. Auch wenn ich a=2 als Grenze setze, bekomme ich noch keine passenden Werte.
Alle Beschleunigungen >1 sollen halbiert werden, nicht unter 1 gebracht werden.
Ich habe schon etwas mit deinem Code gespielt, aber nichts gescheites rausbekommen
EDIT:
Habe festgestellt, dass wenn ein Zwischenschritt eingefügt wurde, k=k+2 gelten muss, um nicht nochmal zu halbieren.
Jetzt klappt es! Vielen lieben Dank!
|
|
|
|
|
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.
|
|