Array 2D, media dei suoi elementi

di il
9 risposte

Array 2D, media dei suoi elementi

Salve a tutti, sono un nuovo iscritto. Avrei bisogno, se possibile, di un vostro aiuto. Vi espongo il mio problema. Come da immagine, ho un array 2D avente 80000 righe e 4 colonne. Facendo riferimento alla 4° colonna, i suoi valori ad ogni riga cambiano dopo un certo numero non costante di volte come mostrato dai gruppi verdi (0 0 0 1 1 1, 2 2 2 2....). Per il primo gruppo verde (0 0 0), fino ad arrivare all' n-esimo gruppo verde, vorrei effettuare la media dei valori racchiusi nei gruppi rossi, riportandoli in un nuovo array 2D.

Purtroppo sono un principiante e spero che qualcuno sia disposto ad aiutarmi. Ringrazio tutti anticipatamente.
Allegati:
Array 2D
Array 2D

9 Risposte

  • Re: Array 2D, media dei suoi elementi

    Sei un principiante che sta studiando o no?

    In ogni caso, cosa non sai fare?
  • Re: Array 2D, media dei suoi elementi

    Ho finito da poco il mio corso di studi, ma aimé non mi è stato possibile approfondire l'aspetto informatico relativo alla programmazione.

    pensavo di impostare il programma nel seguente modo:

    -condizione di confronto della A[3] e della A[i+1][3] sulla quarta colonna in modo che se il valore successivo (i+1) sia = al precedente (i), allora si può procedere alla somma dei valori presenti nelle altre righe/colonne andando da i a i+1. Se (i) != (i+1) allora viene memorizzato l'indice i+1 e si ripete il confronto.

    -due cicli for per scorrere gli indici delle righe e delle colonne.

    Un'idea (sbagliata) di ciò che pensavo è riportata in basso..

    float sum[80000][4];
    int i, j;

    for (i=0; i<=80000;i++ ) {
    for (j=0; j<=4; j++) {

    if (A[3] <= A[i+1][3] )
    {
    sum[3] = sum[3] + A[3];
    }
    else (A[3] != A[i+1][3])

    }
    }
  • Re: Array 2D, media dei suoi elementi

    1) gli indici degli array in C partono da 0 e arrivano a n-1. Quindi dovresti scrivere <80000 e <4

    2) usi un array che chiami sum e poi l'array si chiama A

    3) il codice per leggere il file l'hai scritto?

    4) non ho capito se l'ultima colonna è effettivamente un intero (senza virgola) e che valori può avere


    P.S. che valori sono? E' un esercizio o rappresentano qualcosa?
  • Re: Array 2D, media dei suoi elementi

    1) grazie per la correzione.
    2) l'array 2D che contiene i valori e che deve essere letta è A.
    3) ho sviluppato un programma in LabView che mi permette di acquisire una serie di dati, i quali vengono inglobati in un'array 2D; utilizzo un blocchetto denominato "formula node" che mi permette di leggere l'array 2D senza dovere scrivere alcun codice C.
    4) l'ultima colonna può contenere valori interi o a virgola mobile..ora che ci penso avrei dovuto usare "double" e no "float"..giusto?

    P.S. sono dei dati che elaboravo manualmente mediante Excel e mi piacerebbe capire come automatizzare il processo..
  • Re: Array 2D, media dei suoi elementi

    2) e allora cosa è l'array sum ?

    3) non capisco ... quindi il codice C che vuoi scrivere è all'interno di LabView? Altrimenti come ottiene i dati dal file?

    4) è meglio utilizzare i double.

    Il problema si può risolvere anche mentre leggi dal file. Perché hai la necessità di tenere in memoria tutti i dati?
  • Re: Array 2D, media dei suoi elementi

    Cerco di spiegare meglio quello che vorrei fare...
    Vorrei confrontare i valori della 4°colonna cominciando dal primo valore della prima riga fino ad arrivare all'ultima. Se i valori sono uguali allora sommo i valori presenti nelle altre colonne per ogni riga,ad esempio...visto che per le prime tre righe i valori della 4°colonna sono uguali, per la prima colonna effettuo la somma di 0+0.013001+0.044003, per la seconda 0.396962+0.396962+0.396962 e per la terza -0.05172-0.05172-0.05172 e anche per l'ultima 0+0+0. I risultati vengono scritti in un'altro array 2D.

    2) sum doveva rappresentare la somma dei valori delle prime tre colonne.
    3) si, hai detto bene.
  • Re: Array 2D, media dei suoi elementi

    E il C di LabView ti consente di usare l'allocazione dinamica della memoria (con la malloc, realloc ...) o ha qualche limitazione rispetto al C ?
  • Re: Array 2D, media dei suoi elementi

    Purtroppo ha qualche limitazione e non permette l'uso di queste funzioni. Il primo link mostra la sintassi che è praticamente uguale al linguaggio C, mentre il secondo link mostra le funzioni.

    http://zone.ni.com/reference/en-XX/help/371361G-01/lvhowto/formula_node_syntax/

    http://zone.ni.com/reference/en-XX/help/371361G-01/lvhowto/formula_node_and_express/
  • Re: Array 2D, media dei suoi elementi

    Qualche idea?
Devi accedere o registrarti per scrivere nel forum
9 risposte