MATLAB Answers


Why is my function not defining my outputs and just returning "ans"?

Asked by Jennifer Miller on 23 Jun 2015
Latest activity Commented on by BSantos on 23 Jun 2015
I have written the following function to remove noise from an EMG signal
function[EMG_filtered] = noise_removal(EMG)
Fs = 2000;
[b1,a1]=butter(5,[48/Fs*2, 52/Fs*2],'stop');
x = filter(b1,a1,EMG);
x1 = filter(b2,a2,x);
EMG_filtered = filter(b3,a3,x1);
The function is running correctly except for the fact that it does not save the output as EMG_filtered. It returns "ans" which equals EMG_filtered but this is overwritten as soon as a different function is run. I am having this problem with all the functions I am running. Am I not defining the output correctly?
Thanks for any help and advice

  1 Comment

you forgot a space in between "function" and the first bracket.

Sign in to comment.


1 Answer

Answer by Katalin
on 23 Jun 2015
 Accepted Answer

In the script where you are using the function you need to define a variable e.g
ABC = noise_removal(data);
Then it will be stored in ABC. Otherwise if you just run it it will always put the result in "ans" of any function.


Sign in to comment.