18/11/17 9:21
piter123
Buongiorno, ho un matrice ad esempio di 10 elementi, devo inserire un nuovo dato sulla posizione 1.
prima però devo spostare il vecchio dato della posizione 1 alla 2, quello della 2 sulla posizione 3 e cosi via perdendo così alla fine un dato a favore del nuovo.
Invece di fare un ciclo for/next per traslare gli elementi della matrice e poi inserire il nuovo dato, esiste un comando diretto per traslarla ?
dim matr(10)
for i=1 to 9
matr(11-i)=matr(10-i)
next i
matr(1) = nuovo dato
aaa
18/11/17 10:00
nessuno
Intanto ti ricordo che gli elementi partono dall'indice 0
Puoi scrivere
Array.Copy(mat, 0, mat, 1, mat.Length - 1)
e quindi
mat(0) = nuovo dato
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
18/11/17 10:03
piter123
mille grazie.
Esiste anche un comando per fare direttamente la media di una matrice, magari da pozione a posizione ?
Ultima modifica effettuata da piter123 18/11/17 10:05
aaa
18/11/17 10:17
nessuno
Non fare confusione tra matrici e vettori ...
Non dovresti fare più richieste nello stesso thread, si fa confusione ...
La media del tuo vettore potrebbe essere
Dim media As Double = mat.Where(Function(v) v > 0).Average()
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
18/11/17 10:19
piter123
si scusa, hai ragione
e se la matrice avesse piu' dimensioni ?
ad esempio matr(1,2,10) e devo traslare il dato da matr(1,2,9) in matr(1,2,10) ... matr(1,2,8) in matr(1,2,9)...
grazie
Ultima modifica effettuata da piter123 18/11/17 10:20
aaa
18/11/17 16:43
piter123
ho fatto delle prove e utilizzando Array.Copy(mat, 0, mat, 1, mat.Length - 1) in una matrice multidimensioni sposta tutte le dimensioni
Ultima modifica effettuata da piter123 18/11/17 20:00
aaa