Moskus Skrevet 9. august 2004 Del 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å? Lenke til kommentar
Jonas Skrevet 9. august 2004 Del Skrevet 9. august 2004 Hva er en matrise? Hvis jeg ser koden skjønner jeg sikkert. Lenke til kommentar
aadnk Skrevet 9. august 2004 Del 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 Lenke til kommentar
Moskus Skrevet 9. august 2004 Forfatter Del 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 Lenke til kommentar
Jonas Skrevet 9. august 2004 Del 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 Lenke til kommentar
MagneH Skrevet 10. august 2004 Del 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. Lenke til kommentar
Moskus Skrevet 10. august 2004 Forfatter Del 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 Lenke til kommentar
Jonas Skrevet 10. august 2004 Del 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? Lenke til kommentar
GeirGrusom Skrevet 10. august 2004 Del 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. Lenke til kommentar
Jonas Skrevet 10. august 2004 Del 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 Lenke til kommentar
Moskus Skrevet 12. august 2004 Forfatter Del 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? Lenke til kommentar
GeirGrusom Skrevet 12. august 2004 Del 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) Lenke til kommentar
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å