www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - .M File
.M File < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

.M File: Danke, Problem gelöst!
Status: (Frage) beantwortet Status 
Datum: 19:38 Di 09.05.2006
Autor: N.a.M.e

Hallo,

an alle, die mir geholfen haben und Tipps gaben. Das Problem hat sich erledigt. Habe eine andere Lösung gefunden. Trotzdem vielen Dank.

Ciao

N.a.M.e

        
Bezug
.M File: Tipp
Status: (Antwort) fertig Status 
Datum: 14:45 Mi 10.05.2006
Autor: ed-anton

Hallo, ich denke das Problem liegt daran, dass die Schleife wieder in den Bereich rutscht und du somit von dem Intervall immer wieder das Maximum bestimmst. Falls in dem Intervall alle Maxima gefunden wurden, kannst du c um 300 inkrementieren.

threshold=0.5;
c2=1;
for c=1:1:75076-300
    if (daten(c) > threshold)
        r_tmp=max(daten(c:c+300));

       c=c+300;

        r(c2)=r_tmp;
        c2=c2+1;
    end
end

Probier mal, obs so geht.
Grüße André

Bezug
                
Bezug
.M File: Danke!
Status: (Frage) beantwortet Status 
Datum: 18:29 Mi 10.05.2006
Autor: N.a.M.e

Danke!
Bezug
                        
Bezug
.M File: Antwort
Status: (Antwort) fertig Status 
Datum: 13:19 Fr 12.05.2006
Autor: dormant

Hi!

Also ich glaube, du versuchst diesen Code hinzukriegen:

threshold=0.5;
c2=1;
for c=1:300:75076
    if (daten(c) > threshold)
        r(c2)=max(daten(c:c+300));
        c2=c2+1;
    end
end

Wenn der ausgeführt wird hast du im r höchstens 250 Werte, nämlich die Maxima aller 250 Abschnitte, die aus je 300 Werte bestehen, solange das Ende (und eben nicht das Maximum) jedes Abschnitts über 0,5 liegt.

Ich würde das so machen:

threshold=0.5;
c2=1;
for c=1:300:75076
    if max(daten(c:min(c+300, length(daten))))>0,5
        r(c2)=max(daten(c:min(c+300, length(daten))));
        c2=c2+1;
    end
end

Der klassische Skript wäre:

c2=1;
for c=2:7507-1
    if daten(c)>=daten(c-1) && daten(c)>=daten(c+1) && daten(c)>threshold
        r(c2)=daten(c);
        c2=c2+1;
        % c=min(c+300, length(daten));
    end
end

Dabei könntest du die wekomentierte Zeile hinzufügen, wenn du weißt, dass der Abstand von einem Maximum über 0,5 bis zum anderen mindestens 300 Werte ist. Dann würde man 300 mal weniger Operationen duchführen müssen.

Gruß,
dormant

Bezug
        
Bezug
.M File: Brauche immer noch Hilfe
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:55 Fr 12.05.2006
Autor: N.a.M.e

Hatte bisher leider immer noch keinen Erfolg, wäre also noch immer für weitere Tipps dankbar!



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]