|
|
|
Hilfe zur Funktion find() |
|
| ZeusII |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2012, 14:31
Titel: Hilfe zur Funktion find()
|
 |
Hallo Leute!
ich habe da ein kleines Problem, was sich nicht lösen lässt...
also ich möchte aus einem Array xi der länge 100001 nach einem bestimmten Wert v_Mittel suchen,wobei dieser Wert nur einmal im Array vorkommt und mir den Index zeigen lassen, was eigentlich laut Matlab-Hilfe mit der Funktion index= find(x==v_Mittel) klappen sollte
hier der Code nochmal:
v_Mittel = mean(v_Teil);
index_FrequenzSpitze = find(xi==v_Mittel);
disp('index_FrequenzSpitze = ');
disp(index_FrequenzSpitze)
doch jedes Mal bekomme ich eine leere Matrix als ergebnis, obwohl der gesuchte Wert in dem Array xi wohl existiert
kann mir da jemand weiter helfen?
Danke schon mal
|
|
|
|
|
|
| Kascho |

Forum-Century
|
 |
Beiträge: 195
|
 |
|
 |
Anmeldedatum: 24.03.10
|
 |
|
 |
Wohnort: Jena
|
 |
|
 |
Version: R2008b ... :(
|
 |
|
|
 |
|
Verfasst am: 03.07.2012, 17:00
Titel:
|
 |
Hallo ZeusII,
ich kann deinen Fehler nicht reproduzieren. Bei mir tut dein Code genau was er soll. (Und benutze bitte die Codeumgebung, ist anschaulicher)
Da kommt dann 5 und 11 raus. Bei dir auch?
Gruß, Kascho
|
|
|
|
| ZeusII |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2012, 18:46
Titel:
|
 |
Hallo Kascho!
erstmal Danke für die schnelle Antwort
solange man das wie du mit Integer-Werten macht funktioniert alles wunderbar, problematisch wird´s dann wenn man float- oder double-Werte auf Gleichheit überprüfen will. Aufgrund der Rechenungenauigkeit mit der Matlab arbeitet sind diese unter Umständen nie gleich und somit bleibt das Ergebnis eine leere Matrix...Ich hab das Problem jetzt schon selbständig gelöst in dem ich nicht auf Gleichheit sondern auf >= überprüfe, das geht bei mir deswegen weil mein Daten-Array schon sortiert ist und alle Elemente nur einmal vorkommen
trotz allem Dank ich dir noch mal für deine Unterstüzung
Ich finde den Forum hier richtig gut und werde bestimmt öfters mal reinschauen
Gruss ZeusII
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.07.2012, 21:42
Titel:
|
 |
Hallo,
auf Gleichheit prüfen ist immer problematisch, wenn es sich in irgendeiner Form um errechnete Werte handelt. Das ist übrigens in jeder numerischen Programmiersprache so
Deswegen würde ich immer auf geringe Abweichung statt Gleichheit testen, also statt x == y lieber abs(x-y) < toleranz.
Grüße,
Harald
|
|
|
|
| ZeusII |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 03.07.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2012, 22:09
Titel:
|
 |
Hallo Harald
ja da hast du wohl recht, ich glaube, den Fehler muss man einfach mal gemacht haben, damit man beim nächsten Mal erst gar in die Versuchung kommt
Auf jeden Fall hab ich aus meinem Fehler gelernt
Gruss
|
|
|
|
|
|
|
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.
|
|