|
code88 |
Forum-Fortgeschrittener
|
|
Beiträge: 91
|
|
|
|
Anmeldedatum: 06.02.08
|
|
|
|
Wohnort: Meinisberg
|
|
|
|
Version: MATLAB Version 7.8.0.347 (R2009a)
|
|
|
|
|
|
Verfasst am: 23.07.2010, 14:20
Titel: Lokale Maxima finden
|
|
Ich möchte lokale Maxiamas finden, die von eimen Messvektor kommen.
Maxvec soll der Vektor werden, in dem die Maximas stehen.
Scanvektor.Kraft enthalten die Messwerte
Localmaxx werden die Positionswerte der Maximas
folgender code habe ich programmiert:
Lieder bekomme ich folgende Fehlermeldung:
??? Error: File: Localmax.m
Line: 6 Column: 29
()-indexing must appear last
in an index expression.
Error in ==>
Hauptprogramm_091203 at 5
Localmax(ScanVektor,filenames);
Wenn ich aber ein einfaches Beispiel mache, funktioniert es:
Wieso kann bei meiner Anwenung das nicht gemacht werden?
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 23.07.2010, 14:34
Titel: Re: Lokale Maxima finden
|
|
Hallo code88,
code88 hat Folgendes geschrieben: |
|
Welchen Typ hat denn "ScanVektor.Kraft(n)"?
Die Fehlermeldung bedeutet, dass dies und ähnliches kein valides Matlab-Kommando ist:
Valide ist dagegen:
Dein vereinfachtes Beispiel läßt sich übrigens weiter vereinfachen:
Der Befehl DIFF ist sehr schnell um Differenzen zu berechnen. Lokale Extram kann man dann so suchen:
Der Name STRFIND suggeriert zwar, dass nur Strings als Input erlaubt sind, das stimmt aber nicht.
Gruß, Jan
Zuletzt bearbeitet von Jan S am 27.08.2013, 16:39, insgesamt einmal bearbeitet
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.07.2010, 14:34
Titel:
|
|
Hallo,
weil die Indizierung nicht stimmt. Vermutlich möchtest du das:
Zudem Achtung:
So wie das momentan programmiert ist, wird Maxvec in jeder Iteration der äußeren for-Schleife überschrieben.
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 24.07.2010, 17:16
Titel:
|
|
|
|
code88 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 91
|
|
|
|
Anmeldedatum: 06.02.08
|
|
|
|
Wohnort: Meinisberg
|
|
|
|
Version: MATLAB Version 7.8.0.347 (R2009a)
|
|
|
|
|
|
Verfasst am: 26.07.2010, 08:35
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
weil die Indizierung nicht stimmt. Vermutlich möchtest du das:
Zudem Achtung:
So wie das momentan programmiert ist, wird Maxvec in jeder Iteration der äußeren for-Schleife überschrieben.
Grüße,
Harald |
Vielen Dank das war das Problem.
Jetz bekomme ich noch ein Fehler, weil ein Befehl nicht auf Cell Typen möglich ist:
?? Undefined function or
method 'gt' for input
arguments of type 'cell'.
Error in ==> Localmax at 6
Localmaxx=1 +
find((ScanVektor(n).Kraft(2:end-1)>ScanVektor(n).Kraft(1:end-2))
.*
(ScanVektor(n).Kraft(2:end-1)>ScanVektor(n).Kraft(3:end)));
|
|
|
code88 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 91
|
|
|
|
Anmeldedatum: 06.02.08
|
|
|
|
Wohnort: Meinisberg
|
|
|
|
Version: MATLAB Version 7.8.0.347 (R2009a)
|
|
|
|
|
|
Verfasst am: 26.07.2010, 12:38
Titel: Re: Lokale Maxima finden
|
|
Zitat: |
Der Befehl DIFF ist sehr schnell um Differenzen zu berechnen. Lokale Extram kann man dann so suchen:
Der Name STRFIND suggeriert zwar, dass nur Strings als Input erlaubt sind, das stimmt aber nicht.
Gruß, Jan |
Sorry aber mit meinem Beispiel hier funktioniert dieser code gerade nicht:
[/quote]
|
|
|
Andy386 |
Forum-Guru
|
|
Beiträge: 485
|
|
|
|
Anmeldedatum: 24.06.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.1/8
|
|
|
|
|
|
Verfasst am: 02.08.2010, 00:28
Titel:
|
|
zum Zeile-6-Fehler:
kommt der immer noch, wenn du vorher nen hilfsvektor z.B.
definierst?
strfind und deine version läuft mit 7.1 anstandsfrei durch...
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 03.08.2010, 00:40
Titel: Re: Lokale Maxima finden
|
|
Hallo code88,
ich hatte gefragt:
Zitat: |
Welchen Typ hat denn "ScanVektor.Kraft(n)"? |
Zitat: |
Sorry aber mit meinem Beispiel hier funktioniert dieser code gerade nicht: |
Kannst schreiben, was nicht funktioniert? Gibt es eine Fehlermeldung, wenn ja, welche? Stimmt das Ergebnis nicht mit Deinen Erwartungen überein?
Gruß, Jan
|
|
|
code88 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 91
|
|
|
|
Anmeldedatum: 06.02.08
|
|
|
|
Wohnort: Meinisberg
|
|
|
|
Version: MATLAB Version 7.8.0.347 (R2009a)
|
|
|
|
|
|
Verfasst am: 03.08.2010, 16:20
Titel: Re: Lokale Maxima finden
|
|
Jan S hat Folgendes geschrieben: |
Hallo code88,
ich hatte gefragt:
Zitat: |
Welchen Typ hat denn "ScanVektor.Kraft(n)"? |
ScanVektor(1).Kraft
ans =
Column 1
[2385x1 double]
Column 2
[2333x1 double]
Column 3
[2680x1 double]
Column 4
[2713x1 double]
Column 5
[2576x1 double]
Typ cell
Zitat: |
Sorry aber mit meinem Beispiel hier funktioniert dieser code gerade nicht: |
Kannst schreiben, was nicht funktioniert? Gibt es eine Fehlermeldung, wenn ja, welche? Stimmt das Ergebnis nicht mit Deinen Erwartungen überein?
Gruß, Jan |
Zum Beispiel gibt es keine Fehlermeldung aber gar keine Resultate
Die Vektoren localMax und localMin sind bei mir leer
Beschreibung: |
|
Download |
Dateiname: |
Beispiel.jpg |
Dateigröße: |
76.42 KB |
Heruntergeladen: |
1593 mal |
|
|
|
code88 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 91
|
|
|
|
Anmeldedatum: 06.02.08
|
|
|
|
Wohnort: Meinisberg
|
|
|
|
Version: MATLAB Version 7.8.0.347 (R2009a)
|
|
|
|
|
|
Verfasst am: 03.08.2010, 16:33
Titel:
|
|
Andy386 hat Folgendes geschrieben: |
zum Zeile-6-Fehler:
kommt der immer noch, wenn du vorher nen hilfsvektor z.B.
definierst?
strfind und deine version läuft mit 7.1 anstandsfrei durch... |
Damit bekomme ich folgendes:
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 03.08.2010, 17:43
Titel:
|
|
Hallo Code88,
Zitat: |
??? Undefined function or
method 'gt' for input
arguments of type 'cell'. |
Und endlich haben wir die eindeutige Definition des Typs. Die Daten liegen also als CELL vor. GT und die anderen numerischen Operatoren arbeiten aber mit numerischen Arrays, z.B. des Typs DOUBLE.
Also musst Du die geschweiften Klammern benutzen, um an die CELL-Elemente heran zu kommen.
Möglicherweise klappt dies:
Gruß, Jan
|
|
|
Andy386 |
Forum-Guru
|
|
Beiträge: 485
|
|
|
|
Anmeldedatum: 24.06.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 7.1/8
|
|
|
|
|
|
Verfasst am: 07.08.2010, 01:08
Titel:
|
|
scheint so, dass du entweder einfachere Kommandos verwenden solltest oder uns das Raten mit einem Datenbeispiel vereinfachen könntest.
da fällt mir auf dass es helper=ScanVektor(n) hätte heißen sollen. Oder eben {n}, wie angedeutet. Meine erste Antwort hat Haralds Hilfe unberücksichtigt gelassen.
Nu frag ich mich, warum bei ScanVector.Irgendwas DOUBLES der Form Nx1 rauspurzeln. Sry, aber ich glaub, du kannst neu schreiben...
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
|
|
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.
|
|