Moskus Skrevet 9. august 2004 Skrevet 9. august 2004 Hvis man skal kontrollere en teller, en verdi, en streng, etc, har man den kjekke MsgBox-funksjonen. Men hva hvis man skal kontrollere innholdet av en matrise? Er det en enkel måte å gjøre det på?
Jonas Skrevet 9. august 2004 Skrevet 9. august 2004 Hva er en matrise? Hvis jeg ser koden skjønner jeg sikkert.
aadnk Skrevet 9. august 2004 Skrevet 9. august 2004 (endret) En matrise er en tabular representasjon av data. Ekvalisensen i VB er to-dimmensjonerte array-er, som kan defineres slik: Dim aMatrix(1 To 100, 1 To 100) As String Hvis det er array-er du snakker om, vil jeg anbefale å bruke den innebygde Locals vinduet, som meget oversiktlig og enkelt viser all data i enhver variabel. Stop koden når den kjøres, enten ved å trykke på rammen og sette inn en rød sirkel eller å skrive inn kommandoen Stop. Når koden er stoppet trykker du på View og Locals window. Let deg fram etter variablenen du ønsker å studere, og trykk deg videre inn i variabelen ved å presse på pluss-ikonet. Endret 9. august 2004 av aadnk
Moskus Skrevet 9. august 2004 Forfatter Skrevet 9. august 2004 Takker for svar! Jeg vet om Locals-vinduet, men hadde håpet at det var en enklere måte å gjøre det på. Er det kjapt gjort å få en rekke/matrise (okay, "array" siden VB er engelsk ) eksportert til Excel? Jeg bruker VB.net
Jonas Skrevet 9. august 2004 Skrevet 9. august 2004 Hmmm ... To dimensjonert array .. Altså disse aMatrix(1,1) er ikke det samme som aMatrix(1,2) ?? Husker en gang jeg trengte noe lignende, men fikk det ikke til. Da vet jeg det nå da
MagneH Skrevet 10. august 2004 Skrevet 10. august 2004 Den letteste utvei er vel å teste hvert enkelt element i matrisen inne i for-next sløyfer, og ved eventuell feil angi matriseposisjon i msgbox.
Moskus Skrevet 10. august 2004 Forfatter Skrevet 10. august 2004 Hmmm ... To dimensjonert array .. Altså disse aMatrix(1,1) er ikke det samme som aMatrix(1,2) ?? aMatrix(1,1) vil gi (i vb.net) 0 0 0 0 mens aMatrix(1,2) vil gi 0 0 0 0 0 0
Jonas Skrevet 10. august 2004 Skrevet 10. august 2004 Hmmm ... To dimensjonert array .. Altså disse aMatrix(1,1) er ikke det samme som aMatrix(1,2) ?? aMatrix(1,1) vil gi (i vb.net) 0 0 0 0 mens aMatrix(1,2) vil gi 0 0 0 0 0 0 Men hvordan setter man verdier hvis verdiene går nedover og bortover som på "kartet" ditt?
GeirGrusom Skrevet 10. august 2004 Skrevet 10. august 2004 Dim mat(0 To 3, 0 To 3) As Double Public Sub ClearMatrix() Dim X As Long, Y As Long For Y = 0 To 3 For X = 0 To 3 mat(x, y) = 0 Next Next End Sub Public Sub LoadIdentity() Call ClearMatrix() mat(0, 0) = 1 mat(1, 1) = 1 mat(2, 2) = 1 mat(3, 3) = 1 End Sub Kartet er bare en demonstrasjon på de to dimensjonene, du kan ha så mange dimensjoner du ønsker.
Jonas Skrevet 10. august 2004 Skrevet 10. august 2004 (endret) Nå ble jeg bare forvirret her Altså .. La oss si at jeg dim'er variabel(0 to 3, 0 to 4) Er det da slik at jeg da har alle disse variablene? variabe(0,0) variabe(1,0) variabe(2,0) variabe(3,0) variabe(0,1) variabe(1,1) variabe(2,1) variabe(3,1) variabe(0,2) variabe(1,2) variabe(2,2) variabe(3,2) variabe(0,3) variabe(1,3) variabe(2,3) variabe(3,3) variabe(0,4) variabe(1,4) variabe(2,4) variabe(3,4) Og er det slik at for å endre verdi skriver man variabe(0,0) = "oihi" ?? Edit: Tror jeg har forstått det nå .. Endret 10. august 2004 av Jonas
Moskus Skrevet 12. august 2004 Forfatter Skrevet 12. august 2004 Er det da slik at jeg da har alle disse variablene? Korrekt! Det jeg lurer på nå er om noen vet om det er mulig for VB (.Net) å utføre standard matrise-operasjoner på arrayene (invertering, determinanter, etc)? Eller må man skrive koden selv? Er det mulig å importere MATLAB-rutiner?
GeirGrusom Skrevet 12. august 2004 Skrevet 12. august 2004 Du har jo System.Drawing.Drawing2D.Matrix da, som blir brukt til standard matrise operasjoner (som rotering, skalering, translering osv.) men det er bare en 2x2 matrise (hvis jeg ikke tar helt feil)
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå