www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 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
Dt. Schulen im Ausland: Mathe-Seiten:

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

Sprunganzahl in Intervallen: bessere Methode
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 23:26 Sa 12.09.2009
Autor: sorry_lb

Hiho.
Also ich hab einen Vektor der die Sprungzeiten eines Poisson Prozesses angibt. Nehmen wir zum Beispiel den folgenden:

T =

  Columns 1 through 10

    6.5757   13.3526   18.8708   28.2824   33.5601   44.0928   44.7084   56.5159   56.8786   61.4723

  Columns 11 through 20

   76.7178   82.0771   83.6099   84.7590   87.7947   89.6775   90.2398  104.7608  110.7200  126.0948

  Columns 21 through 30

  134.2564  135.8978  137.5281  138.1798  140.8825  154.1302  154.5322  155.6456  161.9053  164.9525

  Columns 31 through 40

  165.0292  166.7018  167.5797  171.7618  175.5302  178.4230  184.9865  186.4314  189.8585  192.0370

  Columns 41 through 42

  197.9294  200.0000

Was ich möchte: ich möchte einen Vektor "anzsprint" (Anzahl Sprünge pro Intervall), der mir -welch Überraschung- angibt, wie viele Sprünge pro Intervall stattgefunden haben. Die Intervalle sind in 10er-Schritten abgegrenzt.

Bisher habe ich die umständliche Variante:

for i=1:h
    if T(i)<=10
        anzsprint(1)=i;
    elseif T(i)>10 && T(i)<=20
        anzsprint(2)=i - anzsprint(1);
    elseif T(i)>20 && T(i)<=30
       anzsprint(3)=i-anzsprint(2)-anzsprint(1);
    elseif T(i)>30 && T(i)<=40
        anzsprint(4)=i-anzsprint(3)-anzsprint(2)-anzsprint(1) ;
    elseif T(i)>40 && T(i)<=50
        anzsprint(5)=i-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>50 && T(i)<=60
        anzsprint(6)=i- anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>60 && T(i)<=70
        anzsprint(7)=i- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>70 && T(i)<=80
        anzsprint(8)=i-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>80 && T(i)<=90
        anzsprint(9)=i-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>90 && T(i)<=100
        anzsprint(10)=i-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>100 && T(i)<=110
        anzsprint(11)=i-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>110 && T(i)<=120
        anzsprint(12)=i-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>120 && T(i)<=130
        anzsprint(13)=i-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>130 && T(i)<=140
        anzsprint(14)=i- anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>140 && T(i)<=150
       anzsprint(15)=i- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>150 && T(i)<=160
        anzsprint(16)=i-anzsprint(15)- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>160 && T(i)<=170
        anzsprint(17)=i-anzsprint(16)-anzsprint(15)- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>170 && T(i)<=180
        anzsprint(18)=i-anzsprint(17)-anzsprint(16)-anzsprint(15)- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    elseif T(i)>180 && T(i)<=190
        anzsprint(19)=i-anzsprint(18)-anzsprint(17)-anzsprint(16)-anzsprint(15)- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);
    else T(i)>190 && T(i)<=200
        anzsprint(20)=i-anzsprint(19)-anzsprint(18)-anzsprint(17)-anzsprint(16)-anzsprint(15)- anzsprint(14)-anzsprint(13)-anzsprint(12)-anzsprint(11)-anzsprint(10)-anzsprint(9)-anzsprint(8)-anzsprint(7)- anzsprint(6)-anzsprint(5)-anzsprint(4)-anzsprint(3)-anzsprint(2)-anzsprint(1);

    end
end

Das funktioniert soweit ja auch ganz toll, allerdings möchte ich den Prozess nicht bei der Obergrenze von 200 enden lassen. Und wenn ich in den tausender Bereich gehe... naja das Problem ist bei meiner Variante wohl offensichtlich...
Ich denke, dass man das durch Schleifen lösen könnte, bei meinem Versuch hat er sich allerdings bei der Ausgabe von Nullen überschlagen...

for i=1:h
    for j=0:10:Tmax-10
        if j<T(i)<=j+10
            for k=i:1
                
                                              if (k<2) k=5000001;
                                                  anzsprint(5000000)=0;           %um die ersten Summanden=0 zu haben, da negativer index nicht funktioniert                    
                                              end;
            anzsprint(i)=i-anzsprint(k-1)
            end;
        else break;
        end;
    end;
end;

Hat jemand eine tolle Alternative? Und noch ergänzend gefragt: gibt es eine galantere Lösung zum Umgehen des kleiner-gleich-null-index? hab das Problem öfters in meiner Arbeit und wie ichs oben gemacht hab, is´s unbefriedigend :)

Lieben Dank und gute Nacht.



        
Bezug
Sprunganzahl in Intervallen: Lösung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:16 Mo 21.09.2009
Autor: sorry_lb

also für die, die´s noch interessiert: (keine ahnung warum ich mich so schwer getan hab):


for i=1:h
    anzsprint(i)=0;
end;

T
r=(Tmax-10)/10;

for i=1:h
    for k=0:r
        if ((k*10+0) < T(i)) && (T(i)<= (k*10+10))
            anzsprint(k+1)= anzsprint(k+1)+1;
        else
            anzsprint(k+1)=anzsprint(k+1);
        end
    end
end

X=anzsprint  

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


^ Seitenanfang ^
www.vorhilfe.de