Function definitions are not permitted at the prompt or in scripts

1 visualización (últimos 30 días)
I need help in running this project http://students.olin.edu/2012/jatkinson/poe/
i have made these four .m files but when i try to run them this error is displayed 'Function definitions are not permitted at the prompt or in scripts'
i read this in a solution to form .m file for the functions separately but then again the same msg was displayed....
  2 comentarios
Oleg Komarov
Oleg Komarov el 23 de Feb. de 2012
Then you didn't erase the functions from the scripts.
amina
amina el 23 de Feb. de 2012
can u plz check the link and guide me what am i supposed to do in order to run those commands...i'm new to matlab and don't really know what is a script...
i have made 4 .m file(getAI,fftAI,man,ext) separately
when i run fftAI.m this error msg is displayed..i have made a .m file for the function appearing in fftAI.m'function [f, mag] = localDaqfft(data, Fs, blockSize)'named localDaqfft.m .....where i am going wrong

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 23 de Feb. de 2012
In a function file, you can start with any number of blank lines and comment lines, but after that the very first line has to be a "function" line. If you have anything else at all (other than blanks / comments) before the "function" line, then MATLAB will consider the file to be a "script".

Más respuestas (2)

Kevin Holst
Kevin Holst el 23 de Feb. de 2012
If I'm reading your website correctly, you're saying that this is a script named fftAI.m:
[d, time] = getdata(ai, ai.SamplesPerTrigger);
[f, mag] = localDaqfft(d,Fs,blockSize);
data.getdata = [d time];
function [f, mag] = localDaqfft(data, Fs, blockSize)
xFFT = fft(data);
xfft = abs(xFFT);
index = find(xfft == 0);
xfft(index) = 1e-17;
mag = 20*log10(xfft);
mag = mag(1:blockSize/2);
f = (0:length(mag)-1)*Fx/blockSie;
f = f(:);
you can't have function call outs in scripts like that. localDaqfft will need to be it's own m file.

MOHIT SAXENA
MOHIT SAXENA el 12 de Mzo. de 2016
Editada: MOHIT SAXENA el 12 de Mzo. de 2016
function bw=adaptivethreshold(IM,ws,C,tm) if (nargin<3) error('You must provide the image IM, the window size ws, and C.'); elseif (nargin==3) tm=0; elseif (tm~=0 && tm~=1) error('tm must be 0 or 1.'); end
IM=mat2gray(IM);
if tm==0 mIM=imfilter(IM,fspecial('average',ws),'replicate'); else mIM=medfilt2(IM,[ws ws]); end sIM=mIM-IM-C; bw=im2bw(sIM,0); bw=imcomplement(bw); I m getting the same error.what should I do?
  1 comentario
Image Analyst
Image Analyst el 12 de Mzo. de 2016
MOHIT, start your own question and give the function, the line of code and parameter values you used to call it, and your image. But first read this and this and this.

Iniciar sesión para comentar.

Categorías

Más información sobre Function Creation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by