Costurire un dataset object

di il
2 risposte

Costurire un dataset object

Salve a tutti, ho un file excel che contiene nella prima colonna contiene date giornaliere per 21 anni gia' convertite in "formato Matlab" e nelle altre alcune serie storiche. Devo creare un dataset object contenente solo il 21esimo giorno di ogni mese per ogni serie storica (in sostanza devo convertire i miei dati, da giornalieri a mensili, utilizzando come dato mensile il 21esimo giorno di ogni mese).
Ho trovato questo pezzo di codice sul sito di mathworks
% Extract data for the last day of each month
MonthYearMat = repmat((1990:2010)',1,12)';
EOMDates = lbusdate(MonthYearMat(:),repmat((1:12)',21,1));
MonthlyIndex = find(ismember(get(Dataset,'ObsNames'),datestr(EOMDates)));

Estimationdataset = Dataset(MonthlyIndex,:);
EstimationData = double(Estimationdataset);
che dapprima crea una matrice MonthYearMat (12x21) contenente solo l'indicazione dell'anno per ogni mese e poi un vettore EOMDates che contiene le date corrispondenti al 21esimo giorno di ogni mese per tutti gli anni.

La penultima riga di codice mi crea un qualcosa di vuoto, mentre l'ultima mi manda un messaggio di errore "??? Undefined variable Dataset."

Premesso che ho sempre e solo lavorato con matrici e mai con oggetti, c'e' qualcuno che puo' spiegarmi perche' questo avviene e cosa devo fare per risolvere il mio problema.
Grazie in anticipo!

2 Risposte

  • Re: Costurire un dataset object

    No, guarda che l'errore non viene dall'ultima riga ma dalla penultima, perche' "Dataset" in questo pezzetto di codice e' una variabile, la funzione che ti crea un dataset ha l'iniziale minuscola. Comunque dopo che hai i tuoi dati del file excel memorizzati in una matrice M, per costruire il corrispondente dataset D, fai:
    
    D = dataset(M);
    
    e l'oggetto che volevi viene creato.
  • Re: Costurire un dataset object

    Grazie nicc, purtroppo non funziona lo stesso. O meglio, adesso non mi da nessun errore, ma MonthlyIndex e Estimationdataset sono ancora vuote...
    Il problema della conversione daily/monthly adesso l'ho risolto sempli con un mio codice, ma mi rimane la curiosita' di sapere perche' non funziona in questo modo!!
Devi accedere o registrarti per scrivere nel forum
2 risposte