Matlab - Acumular datos en un archivo excel

   
Vista:

Acumular datos en un archivo excel

Publicado por Patricia (22 intervenciones) el 16/05/2013 12:26:54
Hola,

tengo un cierto código y lo guardo en un archivo excel, pero al cabo de un cierto tiempo, quiero añadir en el mismo archivo otros datos, sin que los anteriores se borren.
Lo he intentado de la misma forma que se haría en un archivo .txt, es decir,

fopen(Nameexcel,'a');
Código
fclose(Nameexcel);

Y me aparece la pantalla


Si doy a "Si", me sigue apareciendo la misma pantalla, es decir, que no se me guarda nada nuevo.

¿Hay alguna otra forma de hacerlo?

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

Acumular datos en un archivo excel

Publicado por Patricia (22 intervenciones) el 16/05/2013 13:03:54
Otra opción que estoy pensando, sería guardar los datos en .txt y luego que se pasara de este formato a excel; pero tampoco sé si se puede hacer...
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

Acumular datos en un archivo excel

Publicado por Miriam (13 intervenciones) el 17/05/2013 02:10:30
Hola

Intenta

fopen(fin, 'at')


espero te sirva

Saludos
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
Imágen de perfil de Dave

Acumular datos en un archivo excel

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 17/05/2013 02:12:10
Hola Patricia;

Tengo al menos dos opciones:

1) Primera opción
- Cada vez que deseas agregar nuevos datos a tu archivo Excel, podrías agregar los nuevos datos un archivo temporal,
- En este caso tendría dos archivos "archivo_original.xls" y "temporal.xls"
- Ahora en el mismo matlab ejecutas lo siguiente, ya idea es unir o concatenar los archivos
1
>> ! copy archivo_original.xls + temporal.xls archivo_nuevo.xls



2) Segunda opción
- Carga el contenido del archivo Excel antiguo.
- Concatenalo o unelo los datos iniciales y los nuevos en el mismo Matlab, a nivel de matrices y guarda todos los datos en un nuevo archivo Excel.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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

Acumular datos en un archivo excel

Publicado por Patricia (22 intervenciones) el 20/05/2013 14:06:41
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...
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Acumular datos en un archivo excel

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 20/05/2013 18:52:15
Tu quieres hacer algo así, pero mas complejo

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero1.xlsx
No existe archivo caballero1.xlsx
 
b =
 
    0.4898
    0.4456
 
 
datos =
 
    0.4898
    0.4456
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero1.xlsx
Si existe el archivo caballero1.xlsx
 
b =
 
    0.7094
    0.7547
    0.2760
    0.6797
 
 
datos =
 
    0.4898
    0.4456
    0.7094
    0.7547
    0.2760
    0.6797
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero1.xlsx
Si existe el archivo caballero1.xlsx
 
b =
 
    0.1626
    0.1190
    0.4984
    0.9597
 
 
datos =
 
    0.4898
    0.4456
    0.7094
    0.7547
    0.2760
    0.6797
    0.1626
    0.1190
    0.4984
    0.9597
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero1.xlsx
Si existe el archivo caballero1.xlsx
 
b =
 
    0.5853
    0.2238
 
 
datos =
 
    0.4898
    0.4456
    0.7094
    0.7547
    0.2760
    0.6797
    0.1626
    0.1190
    0.4984
    0.9597
    0.5853
    0.2238
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero1.xlsx
Si existe el archivo caballero1.xlsx
 
b =
 
    0.2551
    0.5060
    0.6991
    0.8909
 
 
datos =
 
    0.4898
    0.4456
    0.7094
    0.7547
    0.2760
    0.6797
    0.1626
    0.1190
    0.4984
    0.9597
    0.5853
    0.2238
    0.2551
    0.5060
    0.6991
    0.8909
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero2.xlsx
No existe archivo caballero2.xlsx
 
b =
 
    0.5472
    0.1386
    0.1493
    0.2575
    0.8407
 
 
datos =
 
    0.5472
    0.1386
    0.1493
    0.2575
    0.8407
 
>> importacion_exportacion_excel
Ingrese nombre de archivo *.xlsx :caballero2.xlsx
Si existe el archivo caballero2.xlsx
 
b =
 
    0.8143
    0.2435
 
 
datos =
 
    0.5472
    0.1386
    0.1493
    0.2575
    0.8407
    0.8143
    0.2435



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Acumular datos en un archivo excel

Publicado por Patricia (22 intervenciones) el 20/05/2013 19:35:32
Si, algo así es lo que quiero hacer.

Ahora estoy probando a utilizar xlswrite y xlsread, pero nada. No se acumulan datos.

Atascada totalmente
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Acumular datos en un archivo excel

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3433 intervenciones) el 20/05/2013 19:36:36
¿ datos_sdb=vertcat(sdb) ?
¿Donde defines sdb?

¿datos_FF=vertcat(FF)?
¿Donde defines FF?


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Acumular datos en un archivo excel

Publicado por Patricia (22 intervenciones) el 20/05/2013 20:26:30
Quité cierto código que no me parece importante para explicar mi caso. A parte, esas variables dependen de otras, con lo cual el código se hace un poco engorroso.
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