Ciao a tutti,
ho una matrice 1440x26 di stringhe 'Vero','Falso' e voglio sapere quante sono le righe di questa matrice in cui compare la scritta 'Vero' nella colonna 3, 5, 14, 15... (solo in alcune specifiche colonne).
io ho scritto un programma (funzionante) che prevede un ciclo if annidato in un ciclo for, in cui pre-allocando la variabile n_min_hole ne incremento il valore ogni volta che una riga obiettivo viene rilevata. Il problema è che questa operazione richiede molto tempo ed essendo solo parte di un programma più complesso ne risulta che la durata dell'elaborazione ne risente di molto. Qualcuno mi sa suggerire un modo migliore per fare questa operazione? E possibile solo tramite creazione di vettori e sfruttando la funzione 'any'?
Grazie
PS sperando possa essere utile allego il programma che ho scritto
n_min_hole=0;
for pp=1:(length(data_daily(:,1)))
hole_3=strcmp(holes(pp+(i-1)*1440,3),'True');
hole_5=strcmp(holes(pp+(i-1)*1440,5),'True');
hole_11=strcmp(holes(pp+(i-1)*1440,11),'True');
hole_12=strcmp(holes(pp+(i-1)*1440,12),'True');
hole_15=strcmp(holes(pp+(i-1)*1440,15),'True');
hole_16=strcmp(holes(pp+(i-1)*1440,16),'True');
hole_19=strcmp(holes(pp+(i-1)*1440,19),'True');
hole_20=strcmp(holes(pp+(i-1)*1440,20),'True');
hole_23=strcmp(holes(pp+(i-1)*1440,23),'True');
hole_24=strcmp(holes(pp+(i-1)*1440,24),'True');
hole_14=strcmp(holes(pp+(i-1)*1440,14),'True');
hole_17=strcmp(holes(pp+(i-1)*1440,17),'True');
hole_21=strcmp(holes(pp+(i-1)*1440,21),'True');
hole_25=strcmp(holes(pp+(i-1)*1440,25),'True');
hole=[hole_3 hole_5 hole_11 hole_12 hole_15 hole_16 hole_19 hole_20 hole_23 hole_24 hole_14 hole_17 hole_21 hole_25];
if hole(1)==1 || hole(2)==1 || hole(3)==1 || hole(4)==1 || hole(5)==1 || hole(6)==1 || hole(7)==1 || hole(8)==1 || hole(9)==1 || hole(10)==1 || hole(11)==1 || hole(12)==1 || hole(13)==1 || hole(14)==1
n_min_hole=n_min_hole+1;
else
end
end