フィルターのクリア

Info

この質問は閉じられています。 編集または回答するには再度開いてください。

translating a script into a function and executing it in the base workspace

1 回表示 (過去 30 日間)
AA
AA 2015 年 1 月 22 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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 件のコメント
per isakson
per isakson 2015 年 1 月 23 日
編集済み: per isakson 2015 年 1 月 23 日
  • "the above script to be written as a function" &nbsp The code above is already a function. See Scripts vs. Functions
  • "Why do I get that error?" &nbsp because "'fsw.Filter'" is not a legal name of a variable

回答 (3 件)

Image Analyst
Image Analyst 2015 年 1 月 22 日
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 件のコメント
Image Analyst
Image Analyst 2015 年 1 月 23 日
There's no reason to send your functions variables directly to the base workspace. See the FAQ
If you want them there then the functions should just return them and you call the function from a simple script.
AA
AA 2015 年 1 月 23 日
How can I incorporate a code in the function so that the external script gets executed and the variables get enlisted in the base workspace? If I achieve this then I do not need to put the script in the function.

Star Strider
Star Strider 2015 年 1 月 22 日
編集済み: Star Strider 2015 年 1 月 23 日
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
steven7337 2015 年 1 月 22 日
Just type the name of the script on command line, then it will be executed.
  1 件のコメント
AA
AA 2015 年 1 月 22 日
I cant do that. I want the script to be incorporated as a function into another function and then display the variables in the base workspace. It is all part of a great plan to accomplish my algorithm.

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by