Tempi permanenza su singoli valori

di il
2 risposte

Tempi permanenza su singoli valori

Salve a tutti,

avrei bisogno di un piccolo aiuto per creare uno script matlab che "quantifichi" per quanto tempo all'interno di un vettore io rimanga su un certo valore.
Cerco di spiegarmi meglio: supponendo di avere un vettore del tipo
x=[1 1 1 1 2 1 1 5 4 9] che rappresenti dei "passaggi di stato"
e un corrispondente vettore tempi
t=[0 1 2 3 4 5 6 7 8 9] (che prendo per comodità in questo modo ma che potrebbe essere [0.1 3 3.3 3.9 ....ecc])

vorrei ottenere una matrice del tipo

A=[ 1 2 5 4 9
6 1 1 1 1]

dove ovviamente la seconda riga non è il valore delle occorrenze di x.
Grazie!

2 Risposte

  • Re: Tempi permanenza su singoli valori

    La domanda e, soprattutto l'esempio, non sono chiari.

    Nell'esempio, i valori "1" nel vettore "x" compaiono in due sequenze, nella prima riga della matrice di output, una sola.
    Come si devono calcolare gli intervalli.
    Anche assumendo di fare la somma di tutte le occorrenze, anche noni consecutive, il valore "6" nella seconda riga sembra sbagliato.

    Se i valori nel vettore "t" rappresentano dei tempi, perchè la prima sequenza di "1" viene valutata "6" nella seconda riga della matrice di output?
    La sequenza di "1" comincia a "0" e termina a "3": nn dovrebbe essere "3" la durata della permanenza?

    Oppure bisogna considerare che la sequenza riprende a "5" e termina a "6"; in questo caso, bisogna semplicemente identificare quando termina l'ultima ripetizione?

    Gli altri valori nel vettore di "x" compaiono solo una volta, come si può parlare di "persistenza" su quei valori?
  • Re: Tempi permanenza su singoli valori

    La prima riga della matrice output dovrebbe essere unique(x) quindi tutti gli stati che il mio sistema "tocca".
    Supponendo che t sia composta di intervalli discreti di tempo vorrei che la seconda riga di A fosse la somma di tutti i tempi relativi ad ogni stato.

    "...Se i valori nel vettore "t" rappresentano dei tempi, perchè la prima sequenza di "1" viene valutata "6" nella seconda riga della matrice di output?
    La sequenza di "1" comincia a "0" e termina a "3": nn dovrebbe essere "3" la durata della permanenza?..."

    Se considero 1 come stato del mio sistema, nel caso specifico il mio sistema tornerà ad 1 dopo essere stato per un secondo in due, non so se mi sono spiegato.

    "...Gli altri valori nel vettore di "x" compaiono solo una volta, come si può parlare di "persistenza" su quei valori?..."

    Compaiono una sola volta per non complicare l'esempio, ma comunque persistono per un secondo.

    Spero di essere stato più chiaro...
Devi accedere o registrarti per scrivere nel forum
2 risposte