Function definitions are not permitted at the prompt or in scripts

3 visualizzazioni (ultimi 30 giorni)
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 Commenti
Oleg Komarov
Oleg Komarov il 23 Feb 2012
Then you didn't erase the functions from the scripts.
amina
amina il 23 Feb 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

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 23 Feb 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".

Più risposte (2)

Kevin Holst
Kevin Holst il 23 Feb 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 il 12 Mar 2016
Modificato: MOHIT SAXENA il 12 Mar 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 Commento
Image Analyst
Image Analyst il 12 Mar 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.

Accedi per commentare.

Categorie

Scopri di più su Function Creation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by