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

Forschleife zu Auswertung von Signalgüte

 

derold
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2016, 21:59     Titel: Forschleife zu Auswertung von Signalgüte
  Antworten mit Zitat      
Hallo,
ich habe n als Wert welches die Anzahl an Fehler beinhaltet, nun möchte ich sagen wie gut der koplette Datensatz in Relation zur Fehleranzahl ist.
Nehmen wir an, bis zu 75% der gesamten Daten beinhalten Fehler, dies wäre gut vollkommen in Ordnung, sogar gut, alles was unter 75% ist bis 50% ist noch akzeptabel und alles unter 50% ist schlecht. Dies möchte ich nun als Schleife und mit entsprechender Ausgabe niederschreiben. (velocity_new beinhaltet den kompletten Datensatz pro Fahrt; n wie gesagt die Fehler)

Code:

for i=1:length (velocity_new)
        if n_1 < velocity_new * 0.75
    disp('Vertrauenslevel: Hoch.');
    elseif  
         n_1 = velocity_new * 0.75
         disp('Vertrauenslevel: gering.');  
    elseif
            n_1 > velocity_new * 0.5
            disp('Vertrauenslevel: niedrig.');
    end
end
 


Laufen tut die Schleife, aber es wird nichts angezeigt, wahrscheinlich weil ich was bestimmtes vergessen habe, kann mir da jemand helfen ?
Vielen Dank im voraus!

Gruß
Derold
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 12.05.2016, 09:16     Titel:
  Antworten mit Zitat      
Da du kein lauffähiges Minimalbeispiel zur verfügung stellst, könnte ich nur raten.
Vermutlich wird velocity_new nur eine länge von 1 haben.

Setze dir einen break Point auf die for schleife und schaue, was in den Variablen gespeichert ist.
Falls du nicht weißt wie: http://de.mathworks.com/help/matlab.....prog/set-breakpoints.html
Schaue auch, wie lang velocity_new überhaupt ist (size mit Angabe der Dimension ist meist der sicherere Weg!).
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.05.2016, 09:59     Titel: Re: Forschleife zu Auswertung von Signalgüte
  Antworten mit Zitat      
Hallo derold,

Code ist viel besser lesbar, wenn man ihn der Syntax entsprechend einrückt. In der geposteten Form ist der Code sogar gar nicht lauffähig. Darum mal gesäubert:
Code:
for i = 1:length(velocity_new)
  if n_1 < velocity_new * 0.75
    disp('Vertrauenslevel: Hoch.');
  elseif n_1 == velocity_new * 0.75  % !Nicht "=" sondern "==" !!!
    disp('Vertrauenslevel: gering.');  
  elseif n_1 > velocity_new * 0.5
    disp('Vertrauenslevel: niedrig.');
  end
end

In dem ertsen ELSEIF fehlte die Bedingung, denn "n_1 = vel..." ist eine Zuweisung, aber kein Vergleich. Der gepostete Code kann also gar nicht laufen, sondern stoppt mit einer Fehlermeldung. Insofern haben wir keine Chance zu erraten, was bei Dir genau passiert.
Möglicherweise läuft bei Dir ein ganz anderer Code als Du vermutest.

Nun bleibt noch die Frage, wozu die Schleife eigentlich dient, denn der Inhalt hängt gar nicht vom Schleifen-Zähler "i" ab. Vielleicht meinst Du "velocity_new(i)"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
derold
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2016, 11:06     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für deine Antwort.
Also ich habe Aufzeichnungen von Fahrten, diese wurden mit einem GPS Gerät aufgenommen. Dabei entstehen jedoch Bereiche die fehlerhaft sind, zum Beispiel durch Ausfall des GPS Signals, etc.
Über eine weitere Schleife, werden diese Fehlbereiche erkannt und in n eingetragen.
Jetzt folgt die eigentliche Schleife, es soll nun zur gesamten Fahrt bezogen, gesagt werden, wie "vertrauenswürdig" die Fahrt ist.
Dabei fällt mir aber auf dass ich die gesamten Daten mit 0,25 und 0,5 multiplizieren, anstatt 0,75, um somit zu belegen dass die Fahrt nicht schlechter ist als 25% oder 50% sind.
Aber was kann ich denn noch verändern sodass dies ermöglicht wird ?
Gruß
Derold
Private Nachricht senden Benutzer-Profile anzeigen
 
AKNOT
Forum-Century

Forum-Century


Beiträge: 129
Anmeldedatum: 12.10.11
Wohnort: Bochum
Version: R2018a
     Beitrag Verfasst am: 12.05.2016, 12:26     Titel:
  Antworten mit Zitat      
Vermutlich verstehe ich es gerade falsch, aber wenn n die Anzahl der fehlerhaften Datenpunkte ist und velocity_new alle Datenpunkte beinhaltet, ist doch der Anteil der Fehler einfach
Code:
n/numel(velocity_new)
Private Nachricht senden Benutzer-Profile anzeigen
 
derold
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2016, 15:36     Titel:
  Antworten mit Zitat      
ich habe es nochmal überarbeitet.
Trotzdem zeigt es jetzt nur die Ausgabe niedrig an, egal wie viele Daten n beinhaltet ?

Code:

if (size(n_1)<size(velocity_new)*0.15)
disp('Vertrauenslevel: Hoch')
elseif (size(n_1)>size(velocity_new)*0.25)
disp('vertrauenslevel: gering')
else
disp('vertrauenslevel: niedrig')
end
 
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.