es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dividir el conjunto de datos en un número específico de muestras mediante un bucle for.

Tengo una matriz de dimensión 35136-por-1 que contiene datos de potencia de 366 días, donde cada día tiene 96 mediciones. Quiero tomar una muestra de 252 días: los datos de potencia de “día 1 a día 7” son la primera muestra, los datos de potencia de “día 2 a día 8” son la segunda muestra, etc. Luego quiero remodelar mi matriz para obtener un tamaño [96 7 1 252].

He escrito el siguiente código, pero obtengo 36 muestras en lugar de 252.

m=7;
for j=1
    sample([j:96*m],:)=solarpower_n([j:96*m],:);
    y([(96*m)+1:96*(m+1)],:)=solarpower_n([(96*m)+1:96*(m+1)],:);
    m=m+1;
    for j=2:246
        sample([(96*(j-1))+1:96*m],:)=solarpower_n([(96*(j-1))+1:96*m],:);
        y([(96*m)+1:96*(m+1)],:)=solarpower_n([(96*m)+1:96*(m+1)],:);
        m=m+1;
    end
end

Quiero tomar una muestra de cada 7 días. Supongamos que D es el número de días y M es el número de mediciones de potencia en cada día. Para 252 días, M=[1,2,3,...,96] y D=[1,2,...,252]. Por lo tanto, la potencia del primer día, P1, tiene una dimensión de 96*1. Quiero tomar sample1={P1,...,P7}, sample2={P2,...,P8} , .....,sample252={P246,.....,P252} y tener un arreglo en 4-D de tamaño [96 7 1 252].

¿Cómo puedo lograr esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Necesitas modificar el bucle for en tu código para que haga un recorrido por los días, en lugar de ejecutarse una vez solamente para j=1. Aquí tienes una versión modificada de tu código que debería lograr lo que estás buscando:

    días = 252;
    muestras = zeros(96,7,1,días);
    for d = 1:días
        índice_inicial = (d-1)*96+1;
        índice_final = índice_inicial + 96*6;
        muestras(:,:,:,d) = permute(reshape(solarpower_n(índice_inicial:índice_final,:), 96,7,1), [1 2 3]);
    end
    

    Esto debería crear una matriz de 4 dimensiones, muestras, con dimensiones [96 7 1 252], donde cada muestra es una matriz de 96 por 7 por 1. La llamada permute es necesaria para reorganizar la forma de la salida de reshape y que coincida con lo que estás buscando.

Comments are closed.