How to change the value of variables in base workspace within a function?
Mostrar comentarios más antiguos
Hi,
I am trying to merge a number of command lines instructions into a function. But I have noticed that instructions which I can run without errors on command lines could not be run within a function. For example, I could write to registers below at the command line such as below -
NPSN.REGISTER.LOAD.LOAD_TYPE1.write = 0;
NPSN.REGISTER.LOAD.LOAD_TYPE2.write = 1;
The same command lines will not have any effect within a function due to workspace segregations. While I could understand that concept, does Matlab provides anyway for us to change the value of these registers within a function?
These registers are actual hardware registers in the controllers which are written through Matlab.
Thanks.
1 comentario
Stephen23
el 28 de Jun. de 2019
It sounds like you should be writing a class rather than a function.
Respuesta aceptada
Más respuestas (1)
Steven Lord
el 28 de Jun. de 2019
What is NPSN? Specifically, is it a handle object that has properties and methods that allow you to query and manipulate a physical hardware device? You can check this with:
isa(NPSN, 'handle')
If it is a handle object, pass it into your function as an input argument. Because handle objects have reference semantics the behavior described in the "Handle Objects Modified in Functions" section on that documentation page sounds like what you want.
Categorías
Más información sobre Whos 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!