Matlab - Extraer número de filas de excel

 
Vista:

Extraer número de filas de excel

Publicado por Ignacio (2 intervenciones) el 19/08/2019 09:38:53
Buenas!

Tengo un Excel con datos sobre potencias de aerogeneradores, los datos son tomados cada 10 minutos.

Estoy diseñando una GUI, de forma que el usuario pueda meter la fecha desde y la fecha hasta la que quiere consultar dichos datos, con el siguiente formato 'yyyy-mm-dd HH:MM:SS'

Necesito buscar esas fechas en la columna de Excel correspondiente y extraer el número de las filas de la fecha inicial y de la fecha final, para un bucle posterior.


Por ejemplo: El usuario introduce las fechas '2019-04-01 00:00:00' y '2019-04-02 00:00:00'.

Necesito saber qué fila ocupa cada fecha. Como los datos se toman cada 10 min, debería haber 145 datos, por tanto la fila de la fecha inicial sería la 1 y la de la fecha final sería la 145.



Un saludo,

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 78
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Extraer número de filas de excel

Publicado por Emmanuel (31 intervenciones) el 19/08/2019 16:17:28
Siguiendo tu lógica la expresión que buscas es la siguiente:

fecha1=datetime('2019-04-01 00:00:00')
fecha2=datetime('2019-04-02 00:00:00')

Fila1=1;
FilaU=floor(minutes(fecha2-fecha1)/10)+1;


fecha1 =

01-Apr-2019 00:00:00


fecha2 =

02-Apr-2019 00:00:00


Fila1 =

1


FilaU =

145
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Extraer número de filas de excel

Publicado por Ignacio (2 intervenciones) el 20/08/2019 09:02:02
Gracias por su respuesta, pero creo que no es lo que buscaba.

Lo acabé resolviendo de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
FormatoFecha = 'yyyy-mm-dd HH:MM:SS';
 
fecha = DataOrig(:, 3); % Nos daba problemas porque había celdas con NaN
        B = cell2mat(cellfun(@ischar,fecha,'UniformOutput',false)); % Identificamos NaN y nos devuelve vector de 1's donde no haya Nan. 
        fecha = fecha(B); % Después rellenamos otra vez la variable 'fechas' con sólo los valores que tienen 1.
        [FN] = datenum(fecha, FormatoFecha); % Convertimos las fechas a números
 
 
FeN_inicio = datenum(fecha_inicio, FormatoFecha); % Convertimos a número las fechas metidas por el usuario
FeN_fin = datenum(fecha_fin, FormatoFecha);
 
% Vamos a hacer una búsqueda de las fechas introducidas, en la columna de fechas y guardaremos la posición para su posterior uso
 
found = false % Variable que nos establece si hay coincidencia o no. La inicializamos siempre en false
i = 1
 
while (~(found) & i<43209) % 43209: Número de datos
    if (FeN_inicio == FN(i))
        found = true
        pos = i
    else
        i = i+1;
    end
 
    if found == true
        fila_finicio = pos
    end
end
 
found = false
% i = 1 no hace falta inicializarlo ya que continuamos desde la i anterior porque la fecha_fin siempre será posterior
 
while (~(found) & i<43209)
    if (FeN_fin == FN(i))
        found = true
        pos = i
    else
        i = i+1;
    end
 
    if found == true
        fila_ffin = pos
    end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar