Running model callbacks in model workspace
Mostrar comentarios más antiguos
Noticed that model callbacks such as PostLoadFcn, StartFcn etc run in base workspace, and they cannot access variables defined in model workspace unless they are evalin'ed in model workspace. Is there a way to change this behaviour and tell the model to evaluate the expressions of its model callbacks in the model workspace instead?
Respuestas (1)
Ryan G
el 13 de Mayo de 2013
0 votos
I don't believe you can change the default behavior here. How much extra work is using the evalin function? Are you calling a lot of functions in the callbacks?
5 comentarios
Ryan G
el 13 de Mayo de 2013
I think the complication may stem from the fact it's calling the MATLAB interpreter to perform the callback. When looking at the callback, I would think of it as a way of saying, when this event occurs (PostLoad), send these commands to the MATLAB command window. It may not be ideal in this instance, but that's how it's behaving.
If you are loading data, you can save that in the model workspace and avoid a callback.
If you are using evalin to load something in the model workspace then you are creating a new variable as part of the model and hence dirtying the model. I may not understand what you are doing here though.
Categorías
Más información sobre Model, Block, and Port Callbacks en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!