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

887

    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. Tiedätkö mihin

      Ominaisuuksiin rakastuin sinussa?
      Ikävä
      81
      4492
    2. Purra on kantanut vastuuta täyden kympin arvoisesti

      Luottoluokituksen lasku, ennätysvelat ja ennätystyöttömyys siitä muutamana esimerkkinä. Jatkakoon hän hyvin aloittamaans
      Maailman menoa
      122
      4177
    3. Persujen mukaan rasismi on huumoria

      Vaan kun koomikko kutsui Halla-ahoa fasistiksi, niin piti haastaa oikeuteen. Mihin se huumorinitaju yhtäkkiä hävisi? ⠀
      Maailman menoa
      45
      4142
    4. BOIKOTOIN - Ei mitään Suomi.fi postilaatikoita käyttöön

      Ainakaan minulle! Vai että pitäisi alkaa siellä käyädä katselemassa tammikuusta 2026 siis periaatteessa päivittäin että
      Maailman menoa
      175
      3354
    5. Lasse Lehtonen vaatii persuja pyytämään anteeksi aasialaisilta

      Persut ova romahduttaneet Suomen maakuvan parissa päivässä negatiiviseksi rasismillaan ja se alkaa vaikuttamaan jo Suome
      Maailman menoa
      60
      2643
    6. 180
      2604
    7. Surullista

      Että menetit sen naisen , tosi surullista ja vielä oman tyhmyyden takia ,ymmärrän että se on masentavaa
      Ikävä
      58
      2587
    8. Hallitus on kaadettava ja Orpon on erottava

      Mikään muu hallitus ei ole oman elämäni aikana tuhonnut näin paljon tämän maan taloutta ja työllisyyttä sekä suomen main
      Maailman menoa
      35
      2582
    9. Muuttunut käytös

      Onko kaivattusi käytös muuttunut? Tiedätkö mistä se johtuu? Haluatko kertoa, mitä tapahtui?
      Ikävä
      68
      2459
    10. Väkeä oli liikkeellä

      Nyt leijutaan pilvissä. Kun eläinpuistossa oli porukkaa 😆😆 Olihan siellä kun ilmaiseksi pääsivät. Eiköhän se juuri sik
      Ähtäri
      43
      2132
    Aihe