How can I use set_param to set StartFcn from within a class method?
Show older comments
I am trying to use
set_param(app.Model,'StartFcn','app.registerListeners')
but the code when run inside StartFcn doesn't recognize 'app' or 'registerListeners'. 'app' is a parameter of the method this is called from, and 'registerListeners' is a public method in the same class.
I have tried:
- Using a callback instead of putting the third argument in single quotes - says 'Invalid setting for block diagram parameter 'StartFcn'
Answers (1)
Sai Sri Pathuri
on 7 May 2020
Can you add the error being thrown when you use 'app.registerListeners(app)' as the third parameter?
If this is the error,
The class app has no Constant property or Static method named 'registerListeners'.
you may try to convert registerListeners function to static to use it as a start function. Also, try to check if app and model are in same folder or add the folder containing app to the MATLAB path.
6 Comments
Matthew Drummond-Stoyles
on 10 May 2020
Edited: Matthew Drummond-Stoyles
on 10 May 2020
Matthew Drummond-Stoyles
on 10 May 2020
Sai Sri Pathuri
on 10 May 2020
I have tried with a static method and it worked. Try to check if app is on the MATLAB path. If this is not the issue, Can you attach the app and model? I will try to figure out the issue.
Matthew Drummond-Stoyles
on 11 May 2020
Tommy
on 11 May 2020
While possibly not the best solution, is the following an option?
assignin('base', 'app', app);
set_param(app.Model, 'StartFcn', 'app.registerListeners');
Matthew Drummond-Stoyles
on 13 May 2020
Categories
Find more on Programmatic Model Editing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!