Borrar filtros
Borrar filtros

Using something faster than xlswrite()?

2 visualizaciones (últimos 30 días)
ck
ck el 27 de Jun. de 2016
Editada: Image Analyst el 28 de Jun. de 2016
I am using xlswrite to save the outputs each time, so this calls to open excel and its consuming a lot of time. Is there any other faster process for this ?

Respuestas (2)

Star Strider
Star Strider el 27 de Jun. de 2016
I’m not certain what you’re doing, but I would save the intermediate results to a numeric or cell array, then save the array after the loop in one xlswrite call.
  1 comentario
ck
ck el 27 de Jun. de 2016
Yeah, I used xlswrite after getting the whole output to save it, but even one call is taking aroung 3 sec atleast!

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 27 de Jun. de 2016
If by "each time" you mean in a loop, yes, that will take forever, except for more modern versions, like R2015b or later. That's each time you call xlswrite() it has to launch Excel, toss in your data, then shut down Excel. Later versions leave Excel running, which is faster (but which causes other problems by the way). So, what version are you running?
Like Star said, a faster way for all versions is to build your cell array only and THEN write a cell array with a single call to xlswrite().
  4 comentarios
ck
ck el 28 de Jun. de 2016
b is a 6x1 matrix , so if I call it once it takes around 3 or 3.5 sec.
Image Analyst
Image Analyst el 28 de Jun. de 2016
Editada: Image Analyst el 28 de Jun. de 2016
So just store b in a 2D array, then call xlswrite
b2d = zeros(6, 10); % Preallocate for speed.
for column = 1 : 10
% Get b
this_b = whatever.....
% Store in 2D array in this column.
b2d(:, column) = this_b;
end
xlswrite(filename, b2d, 'A1');

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by