Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 145
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: 6402
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: 145
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: 6402
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: 145
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: 145
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