WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Geschwindigkeit berechnen

 

FReef
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 11.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2021, 20:29     Titel: Geschwindigkeit berechnen
  Antworten mit Zitat      
Guten Tag an alle,

ich möchte mit Hilfe meiner M.mat Datei die Zeile finden, in der eine bestimmte Bedingung (Geschwindigkeit v) überschritten wird.
Die erste Spalte von M ist die Zeit t und die zweite Spalte eine Entfernung T2.
Die Zeit zählt von 0 in ca. 0,1s Schritten hoch.
Die Entfernung T2 wird bis Zeile 804 nicht erfasst, dann "stagniert" die Entfernung eine gewisse Zeit und nimmt dann ab.
Daraus möchte ich die bestehende Geschwindigkeit für jeden neuen Zeitpunkt berechnen und habe mir das wie folgt gedacht:
Code:

v = ((T2(i)-T2(i+1))/(t(i+1)-t(i)));
 


Um die gewünschte Zeile zu finden wollte ich dann so vorgehen:
Code:

k = find(T2 > 0  & v > 0.1);
columnT2 = k(1);
 


Ich bekomme aber immer den Fehler "Array indices must be positive integers or logical values."
In anderen Beiträgen habe ich keine Lösung für mein Problem gefunden.
Wie kann ich diesen Fehler umgehen, um die gewünschte Zeile zu finden?
Vielen Dank!

FindV.m
 Beschreibung:

Download
 Dateiname:  FindV.m
 Dateigröße:  192 Bytes
 Heruntergeladen:  132 mal
M.mat
 Beschreibung:

Download
 Dateiname:  M.mat
 Dateigröße:  105.83 KB
 Heruntergeladen:  130 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.435
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.11.2021, 21:22     Titel:
  Antworten mit Zitat      
Hallo,

was soll denn i sein?
Wenn du es nicht anders definierst, dann ist i = sqrt(-1).

Wenn du das mit einer for-Schleife lösen möchtest, dann musst du auch eine hin schreiben. Meine bevorzugte Variante wäre:
Code:
v = diff(T2) ./ diff(t);


Berechnest du in deiner Formel absichtlich die negative Geschwindigkeit? Wenn du das tatsächlich so willst, musst du meinen Vorschlag entsprechend anpassen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FReef
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 11.10.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.11.2021, 13:27     Titel:
  Antworten mit Zitat      
ich hatte das i in einer for-Schleife definiert und beim Erzeugen eines Minimalbeispiels weggelassen.

Danke für die schöne Lösung, es hat funktioniert.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.