Media in un cell

di il
2 risposte

Media in un cell

Ciao a tutti, devo caricare su matlab dei file exel che contengono i dati raccolti da una macchina che estrae energia dalle onde, la tabella contiene: data, ora, velocità del vento radiazione ecc ecc.
Poichè i dati acquisiti non sono omogenei, cioè in alcune giornate la macchina registra i dati ogni 10 minuti, in altre ogni mezz'ora, io voglio creare una nuova cell che mi contiene un solo valore all'ora dato dalla media dei vari rilevamenti della macchina nell'ora. Io ho iniziato a lavorare cosi
textdata è il file exel (in allegato non riesco a metterlo perchè non mi fa caricare il file .xls ma posso inviarlo via mail privatamente per farvi capire) caricato in matlab
Ho eliminato le prime 2 righe perchè contenevano il nome delle variabilli
textdata(1,:)=[];%elimina la prima riga
textdata(1,:)=[];
A=textdata(:,1); %cell con la prima colonna di textdata che contiene le date
B=textdata(:,2); %cell con la seconda colonna di textdata che contiene le ore
C=strcat(A,B); %concatena le 2 cell
serialtime=datenum(C,'dd.mm.yyyyHH:MM:SS'); %attribuisce un numero
dt = datestr(serialtime,'dd.mm.yyyyHH:MM:SS');
Adesso non so come fare per fare la media, come faccio a fare un ciclo for controllando le ore???
Grazie

2 Risposte

  • Re: Media in un cell

    Buona sera
    un consiglio se devi caricare file excel usa questi comandi,perché riesce a caricare file excel e ti divide in automatico la parte numerica dalla testule.

    filename = 'NOMEFILE.xlsx'; %file da caricare
    sheet = 3; % foglio di excel
    xlRange = 'D1:E61'; %colonne e righe in questo caso ti carica le colonne D ed E dalla riga 1 alla 61

    [MosNorm, textMN] = xlsread(filename, sheet, xlRange);

    per il resto non sapendo come è organizato il file excel non saprei, dovrei capire come sono memorizzate le date e gli orari.
    in ogni caso avrei pensato ad una cosa del genere

    filename = 'orario.xlsx';
    sheet = 1;
    xlRange = 'A1:B6';
    [num, textMN] = xlsread(filename, sheet, xlRange);
    for i=1:6
    Nuovo_testo=textMN{i,1};
    ora_stringa=Nuovo_testo(12:13);
    ora(i)=str2num(ora_stringa)
    end
    inizio=1;
    fine=6;
    for i=1:5
    if ora(i)~=ora(i+1)
    fine=i;
    media=mean(num(inizio:fine));
    inizio=i+1;
    end
    end
  • Re: Media in un cell

    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
2 risposte