Modificare la dimensione di un array

di il
3 risposte

Modificare la dimensione di un array

Salve a tutti ragazzi il mio problema è il seguente:
Nel codice che sto scrivendo devo calcolare la distanza euclidea tra due vettori rappresentanti la potenza elettrica, calcolata in due modi diversi.
Il primo array contiene 166 elementi di potenza elettrica.
Il secondo array contiene invece soltanto 18 elementi, in quanto contiene solo i valori della potenza in seguito al superamento di una determinata soglia.
Per rendere meglio l'idea, l'array di 166 elementi restituisce il classico grafico di una utenza domestica, con andamento frastagliato, con 166 punti, mentre l'array di 18 elementi altro non è che una scalinata a 18 scalini.
Il mio obiettivo è calcolare la distanza tra queste due forme d'onda.
Pertanto per renderlo possibile devo rendere anche l'altro array a 166 elementi.
L'obiettivo è mantenere all'interno del vettore come valore,ad esempio, il primo valore dell'array da 18 elementi fino a quando non si incontra il secondo scalino, poi mantenere quel valore fino al terzo scalino e così via fino al diotessimo, in modo da avere così 166 elementi.
Spero di essere stata chiara e qualcuno possa aiutarmi.
Grazie in anticipo.

3 Risposte

  • Re: Modificare la dimensione di un array

    Come fai ad avere 18 scalini con un array da 18 elementi?
    Dovresti pubblicare un esempio dell'array con 18 elementi.
    Tra l'altro 166 non è un multiplo intero di 18.
  • Re: Modificare la dimensione di un array

    Il mio array è questo:
    potenze= [1,528;56,066;91,100;105;110,300;1,540;49,200;63,100;85,353;1,505;51,250;84,885;1,535;51,350;62,016;1,525;51,850;0;0]
    e scusa volevo dire 19 elementi, 18 scalini.
    Adesso io dovrei mantenere il primo valore di quell'array fino a quando non incontro il secondo scalino.
    Considera che io ho calcolato anche la durata dei miei eventi, il tempo in cui si verificano (vettore che ho chiamato "tempi_eventi) e ho tutti i valori di tempo che costituiscono il mio asse tempi in un array di 166 tempi.
    I dati derivano infatti da un file excel dove le misurazioni di potenza vengono effettuate ogni 60 secondi da un wattmetro.
    Ho riportato poi l'orario in cui viene registrata la misura, in secondi, costruendo così l'asse tempi e ho chiamato l'array contenente quei 166 tempi,"B".
    Quindi ad esempio il primo evento si verifica a 42548 s, il secondo a 42968s, pertanto io volevo impostare un ciclo for con due indici uno afferente al vettore B uno afferente vettore tempi_eventi che ad esempio prenda il primo valore pari ad 1,528 e lo mantenga fino a quando B=tempi_eventi,
    quindi ad esempio quando B=42968, deve registrare nel mio nuovo array, il valore di potenza 56,066 e mantenerlo fino a che B non coincida con il terzo valore di "tempi_eventi".
    Magari è un modo confusionario ed è per questo che non sta funzionando.
    Spero di essere stata chiara e grazie per l'aiuto.
  • Re: Modificare la dimensione di un array

    Mi dispiace, ma non riesco a capire, non tanto quello che vuoi fare, quanto come sono organizzati i dati.

    Se, come hai scritto, il primo evento si verifica a 42548 s ed il secondo a 42968 s, tra i due eventi sono passati 420 s.
    Se le misure vengono effettuate ogni 60 s, vuoi che il valore 1,528 venga "mantenuto" (replicato) per 7 volte (420 / 60)?
Devi accedere o registrarti per scrivere nel forum
3 risposte