Acumular datos en un archivo excel
Hola otra vez, pues he estado probando los casos de Dave, ya que los de Miriam no me valen y son los que puse anteriormente en el que me salía dicho mensaje...
El segundo caso de Dave no le veo apropiado para mi situación porque ya que son diferentes matrices las que uso de una longitud bastante elevada (1x40000), y al haber un número indefinido de repeticiones, sería mucho lío poner el orden adecuado.
El segundo caso es el que más me he centrado, pero no obtengo resultado, o mejor dicho, solo me aparece el archivo de solo una copia.
Dejo aquí mi código haber si me podeis dar más ayuda.
clear
clc
tmax=60000;
i=1;
while i<=tmax
%Obtener el path de la carpeta actual
[stat,struc] = fileattrib;
PathCurrent = struc.Name;
%Crear las rutas (path) para carpetas y archivos
FolderName=['Carga - '];
PathFolder=[PathCurrent '/RESULTADOS/' FolderName];
Nameexcel=[PathFolder '/temporal.xls'];
Nameexcel2=[PathFolder '/archivo_original.xls'];
Nameexcel3=[PathFolder '/archivo_nuevo.xls'];
reloj=clock;
%Capturamos una imagen
video_captura=videoinput('winvideo',1);
set(video_captura,'ReturnedColorSpace','rgb');
preview(video_captura);
imagen=getsnapshot(video_captura);
imwrite(imagen,'C:\MATLAB7\toolbox\images\imdemos\foto.jpg','jpg');
closepreview;
I=(imread('C:\MATLAB7\toolbox\images\imdemos\foto.jpg'));
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
[mR,nR]=size(R);
MR=sum(R);
MTR=sum(MR);
fR=mR*nR
m_R=MTR/fR;
[mG,nG]=size(G);
MG=sum(G);
MTG=sum(MG);
fG=mG*nG;
m_G=MTG/fG;
[mB,nB]=size(B);
MB=sum(B);
MTB=sum(MB);
fB=mB*nB;
m_B=MTB/fB;
%Crear las carpetas para guardar los resultados
mkdir([PathCurrent '/RESULTADOS'], FolderName);
C=[m_R,m_G,m_B];
%Guardar datos en archivo Excel “temporal”
hora=sprintf('%d:%d:%2.2f',reloj(4),reloj(5),reloj(6));
tituloH={'Hora:'};
dateSet={hora};
xlswrite(Nameexcel,tituloH,1,'A1');
xlswrite(Nameexcel,dateSet,1,'A2');
titulo={'dB' 'Frec.(Hz)' 'dB_f' 'R' 'G' 'B' 'Temp.(ºC)' 'Hum.(%)'};
datos_sdb=vertcat(sdb);
xlswrite(Nameexcel, titulo,1,'A3');
xlswrite(Nameexcel,datos_sdb,1,'A4');
datos_FF=vertcat(FF);
xlswrite(Nameexcel,datos_FF,1,'B4');
datos_Sdb=vertcat(Sdb);
xlswrite(Nameexcel,datos_Sdb,1,'C4');
xlswrite(Nameexcel,C,1,'D4');
%Guardar datos en archivo Excel “archivo_original”
hora=sprintf('%d:%d:%2.2f',reloj(4),reloj(5),reloj(6));
tituloH={'Hora:'};
dateSet={hora};
xlswrite(Nameexcel2,tituloH,1,'A1');
xlswrite(Nameexcel2,dateSet,1,'A2');
titulo={'dB' 'Frec.(Hz)' 'dB_f' 'R' 'G' 'B' 'Temp.(ºC)' 'Hum.(%)'};
datos_sdb=vertcat(sdb);
xlswrite(Nameexcel2, titulo,1,'A3');
xlswrite(Nameexcel2,datos_sdb,1,'A4');
datos_FF=vertcat(FF);
xlswrite(Nameexcel2,datos_FF,1,'B4');
datos_Sdb=vertcat(Sdb);
xlswrite(Nameexcel2,datos_Sdb,1,'C4');
xlswrite(Nameexcel2,C,1,'D4');
!copy archivo_original.xls + temporal.xls archivo_nuevo.xls
i=i+20000; %20000 por los 20 sg que dejamos de margen para que se complete todo
end
Al ejecutar esto, se ejecuta pero me aparece un mensaje: El sistema no puede encontrar el archivo especificado. Supongo que será al "archivo_nuevo.xls" . A parte, veo otro fallo que al crear el "archivo_original", se me va aguardar en las mismas celdas...
Mi archivo excel va desde 1 a 40003. Los siguientes datos se deberian guardar en 40004,y los siguientes en 80007, y así sucesivamente...