translating a script into a function and executing it in the base workspace
Información
La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.
Mostrar comentarios más antiguos
function test()
fsw = System.IO.FileSystemWatcher();
fsw.Path = 'C:\Users\wolfgang';
fsw.Filter = 'test.csv';
fsw.EnableRaisingEvents = true;
listenerhandle = addlistener(fsw, 'Changed', @(~,~)testing1234(q,a));
%signature of importfcn is function importfcn(sender, eventargs)
%add a small delay in importfcn before reading the file as the event is raised
%to make sure that file modification is complete
end
I need the above script to be written as a function so that it gets executed in the base workspace. How can I do that?
yI use assignin('base','fsw',fsw) and it gets to the base workspace. However, somehow i get an error when i do assignin('base','fsw.Filter',fsw.Filter). Why do I get that error?
1 comentario
per isakson
el 23 de En. de 2015
Editada: per isakson
el 23 de En. de 2015
- "the above script to be written as a function"   The code above is already a function. See Scripts vs. Functions
- "Why do I get that error?"   because "'fsw.Filter'" is not a legal name of a variable
Respuestas (3)
Image Analyst
el 22 de En. de 2015
Let's say it's called test.m. Simply put this line at the beginning of the file to turn it from a script into a function
function test()
5 comentarios
per isakson
el 22 de En. de 2015
functions use their own workspace. That cannot be changed.
AA
el 22 de En. de 2015
Image Analyst
el 23 de En. de 2015
If you want them there then the functions should just return them and you call the function from a simple script.
AA
el 23 de En. de 2015
Star Strider
el 22 de En. de 2015
Editada: Star Strider
el 23 de En. de 2015
At the risk of pointing out the obvious (and not having run your code), why not write it at the outset as:
function fsw = test()
and see if that does what you want.
EDIT —
It will return whatever variables you want it to return (here only ‘fsw’) to the workspace when the function completes and returns control to the calling script. See Create Functions in Files and related documentation for details.
steven7337
el 22 de En. de 2015
0 votos
Just type the name of the script on command line, then it will be executed.
1 comentario
AA
el 22 de En. de 2015
La pregunta está cerrada.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!