Silmukka silmukassa

Ptr

Meni vahingossa väärälle palstalle, uusi yritys...

Eli tarkoitus on luoda funktio, johon annetaan vektori ja viive. Kun viive = 1, vektori lyhenee lopusta yhden solun. Sitten otetaan korrelaatio alkuperäisen ja uuden vektorin kanssa. Kun viive = 2, vektori lyhenee lopusta 2 solua. Jälleen alkuperäinen ja lyhyt vektori tuottavat korrelaation. Lopuksi summataan korrelaatiot yhteen.

Edellisen postin jälkeen kehittelin koodia eteenpäin, mutta vieläkään sisäkkäiset silmukat eivät tunnu toimivan:

Public Function crx(vect As Variant, viive As Double) As Variant

Dim N, i, k As Long
Dim corr As Double
Dim mat, mat1 As Variant
mat = vect
N = UBound(mat, 1)
i = 1
k = 1

Do Until k = viive
ReDim mat1(N - 1, 1)
For i = 1 To N - k
mat1(i, 1) = mat(i, 1)
Next
corr = WorksheetFunction.Correl(mat1, mat)
summa = summa corr
k = k 1
Loop

crx = summa

End Function

3

873

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ........

      vieläkö joku käyttää VB:tä :O:O

      • Ptr

        Sinulla on varmaan Excelissä joku muu ohjelmointikieli?

        Jos kuitenkin viitsit vastata varsinaiseen kysymykseen, toisi enemmän lisäarvoa.


    • xxxxx

      En tajunnut kysymystäsi, kuten mitä tarkoitit korrelaatiolla. Mitä tuon WorksheetFunction.Correl -funktion pitäisi tehdä?

      Ainakin nämä virheet tuossa nyt on:

      mat1(i, 1) = mat(i, 1)
      Sijoitat saman arvon eli mikään ei muutu.

      i=1
      Turha antaa alkuarvo kun sitä ei käytetä. Rivi pois, sillä annat i-muuttujalle arvon for-nextillä.

      Sisäkkäiset silmukat on myös selkeämpää tehdä molemmat for-next -käskyllä:

      For k=1 to viive
      For i=1 to n-k
      ...
      Next i
      Next k

      Itse käytän harvoin do-loop -käskyä, koska siinä tarvitaan enemmän käskyrivejä. Enkä käytä sitä koskaan selkeissä luupeissa jotka voi tehdä for-nextillä, vaan ainoastaan kun silmukan määrää ei tiedetä etukäteen, esim. do until eof(Filenro#)

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tukalaa kuumuutta

      Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh
      Ikävä
      43
      3017
    2. Ensi kesänä

      Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta
      Ikävä
      61
      2961
    3. Sinä, ihastukseni

      Mitä haluaisit tehdä kanssani ensimmäisenä?
      Ihastuminen
      42
      2367
    4. Tiedät ettei tule toimimaan.

      Mielenterveys ei kummallakaan kestä.
      Ikävä
      31
      1863
    5. Okei, myönnetään,

      Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘
      Ikävä
      25
      1719
    6. Anne Kukkohovin karmeat velat ovat Suomessa.

      Lähtikö se siksi pois Suomesta ? Et on noin kar? mean suuret velat naisella olemassa
      Kotimaiset julkkisjuorut
      72
      1684
    7. Onko kaivatullasi

      himmeä kuuppa?
      Ikävä
      48
      1586
    8. Mihin hävisi

      Mihin hävisi asiallinen keskustelu tositapahtumista, vai pitikö jonkin Hannulle kateellisen näyttää typeryytensä
      Iisalmi
      77
      1275
    9. On jo heinäkuun viimeinen päivä.

      En taida nähdä sinua koskaan.
      Rakkaus ja rakastaminen
      38
      1252
    10. Lähtikö korvat

      puhtaaksi vaikusta?
      Tuusniemi
      79
      1080
    Aihe