|
|
Vektor nach Minima durchsuchen |
|
GoTo88 |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.04.2013, 12:42
Titel: Vektor nach Minima durchsuchen
|
 |
Hallo,
ich bin absoluter matlab Anfänger, benötige die Software aber im Moment zur Datenanalyse in meinem Physikstudium.
Im Moment habe ich ein kleines problem und weis nicht mit welchen Befehlen ich es mir erleichtern kann:
Vektor a enthält Frequenzdaten (Länge 250)
Vektor b enthält die zugehörigen Amplitudenwerte (Länge 250)
Nun möchte ich gerne mir für ein gewisses Frequenzspektrum die minimale Amplitude ausgeben lassen.
Gibt es hierfür einen Befehl?
Weil Vektor a und b sind ja formal nicht voneinander abhängig für matlab, sondern einfach Spaltenvektoren die mit Zahlen gefüllt sind. Wie kann ich also ein Bereich in Vektor a auswählen und mir für diesen bereich das Minimum der Werte in b suchen lassen?
Vielen Dank für eure Hilfe
|
|
|
|
|
Cherup |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.04.2013, 12:54
Titel:
|
 |
Hi,
sind deine Frequenzdaten aufsteigend/absteigend sortiert und entsprechen deine Amplitudenwerte den Frequenzdaten (also Amp an Position 1 gehört zu Freq an Position 1 usw.)?
edit: Falls dem so ist, probier mal das:
min(b(a(a=="untere Frequenzgrenze):a(a=="obere Frequenzgrenze")))
VG
Cherup
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
GoTo88 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.04.2013, 17:09
Titel:
|
 |
Danke funktioniert super!
Mal eine Frage noch zum Verständnis der syntax:
min(b(a(a==2):a(a==12))
Warum müssen da zwei == hin? Das "heißt" doch quasi min von b von a von a2 bis a12.
grüße
|
|
|
Cherup |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.04.2013, 17:25
Titel:
|
 |
Nicht ganz.
"==" ist ein "Vergleichs"-Operator, "=" ist die Zuweisung eines Wertes.
Der Code bedeutet nichts anderes als:
Suche das Minimum bei b ab der Position, in denen a den Wert x hat bis zu der Position, in der a den Wert y hat.
Durch das "==" wird der Index des entsprechenden Wertes in a "zurückgegeben".
Dabei ist es egal, ob der Wert nun an Position 1 oder 100 steht. Wichtig ist nur, das die Position deiner oberen Grenze höher ist, als der Index (also die Position) deiner unteren Grenze. Daher hab ich im ersten Posting auch gefragt, ob deine Werte sortiert sind
Wenn du genau weißt, bei welchem Index deine Werte stehen, kannst du auch statt a(a==x) a(x) benutzen, aber a(a==x) hat halt den Vorteil, dass es dynamisch ist.
VG
Cherup
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
|
|
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.
|
|