Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - traslare dati all'interno di una matrice
Forum - C# / VB.NET - traslare dati all'interno di una matrice

Avatar
piter123 (Normal User)
Pro


Messaggi: 144
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 10:21
Sabato, 18/11/2017
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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5716
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:00
Sabato, 18/11/2017
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à.
PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 144
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 11:03
Sabato, 18/11/2017
mille grazie.

Esiste anche un comando per fare direttamente la media di una matrice, magari da pozione a posizione ?


Ultima modifica effettuata da piter123 il 18/11/2017 alle 11:05
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5716
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:17
Sabato, 18/11/2017
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à.
PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 144
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 11:19
Sabato, 18/11/2017
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 il 18/11/2017 alle 11:20
PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 144
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 17:43
Sabato, 18/11/2017
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 il 18/11/2017 alle 21:00
PM Quote