Continue simulation: resize workspace variables

2 visualizaciones (últimos 30 días)
Amy
Amy el 24 de Feb. de 2017
Comentada: Sudarshan Kolar el 28 de Feb. de 2017
Hello!
I have run a simulation for 10.000 increments. Now I want to continue on this simulation so that in total 30.000 increments will be run.
For this purpose I want to use a loop to look at all the workspace variables and preallocate them without losing the older values:
for all variables in the workspace
if size(variable,1)==10000
variable(30000,:)=0
elseif size(variable,2)==10000
variable(:,30000)=0
end
end
How can I do this?
I found the following things that could be an ingredient:
list=who;
size(char(list(1)));
  3 comentarios
Amy
Amy el 28 de Feb. de 2017
Nothing is changed except for the number of increments that I want to run and the final time that I want to run it.
Sudarshan Kolar
Sudarshan Kolar el 28 de Feb. de 2017
You can write a script that runs the model for 10 increments. Saves the data in an array and re-run the simulation for say 20 increments.
As an example, say my model has a "To workspace" block that logs a variable called "var1" every simulation.
storeData = []; %preallocate this for speed
sim('vdp','StopTime','10');
storeData = [storeData var1];
sim('vdp','StartTime','10','StopTime','20');
storeData = [storeData var1];
sim('vdp','StartTime','20','StopTime','30');
storeData = [storeData var1];
You can also use SimState for this.

Iniciar sesión para comentar.

Respuesta aceptada

Amy
Amy el 28 de Feb. de 2017
Thank you for your responses.
I solved my problem by doing the preallocation using A(30000,:)=0 instead of A=zeros(30000,xxx).

Más respuestas (1)

Walter Roberson
Walter Roberson el 27 de Feb. de 2017
  1 comentario
Amy
Amy el 28 de Feb. de 2017
I don't think that that applies to my question.

Iniciar sesión para comentar.

Categorías

Más información sobre Variables en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by