Asked by Ray
on 28 Nov 2012

Hi,

I am trying the run the following function:

function [embedm fnn1 fnn2]=fnn(y,maxm)

% Usage: This function calculates corrected false nearest neighbour.

% Inputs: % y is a vertical vector of time series. % maxm: maximum value of embedding dimension.

% Output: % embedm: proper value for embedding dimension. % fnn1: First criteria of false nearest neighbors. % fnn2: second criteria of false nearest neighbors.

% Copyright(c) Shapour Mohammadi, University of Tehran, 2009 % shmohammadi@gmail.com

% Keywords: Embedding Dimension, Chaos Theory, Lyapunov Exponent, % False Nearest Neighbors.

% Ref: % -Sprott, J. C. (2003). Chaos and Time Series Analysis. Oxford University % Press.

%__________________________________________________________________________ y=y(:); RT=15; AT=2; sigmay=std(y); [nyr,nyc]=size(y); %Embedding matrix m=maxm;

EM=lagmatrix(y,0:m-1);

%EM after nan elimination. EEM=EM(1+(m-1):end,:); [rEEM cEEM]=size(EEM);

embedm=[];

for k=1:cEEM fnn1=[]; fnn2=[]; D=dist(EEM(:,1:k)');

for i=1:rEEM-m-k

d11 = min(D(i,1:i-1)); d12=min(D(i,i+1:end)); Rm=min([d11;d12]); l=find(D(i,1:end)== Rm); if Rm>0 if l+m+k-1<nyr fnn1=[fnn1;abs(y(i+m+k-1,1)-y(l+m+k-1,1))/Rm]; fnn2=[fnn2;abs(y(i+m+k-1,1)-y(l+m+k-1,1))/sigmay]; end end end Ind1=find(fnn1>RT); Ind2=find(fnn2>AT); if length(Ind1)/length(fnn1)<.1 && length(Ind2)/length(fnn1)<.1; embedm=k; break

end end

After entering information for y and mmax, I run fnn. I get the following erro message:

Error using fnn (line 28) Not enough input arguments.

Error in run (line 74) evalin('caller',[script ';']);

What am I doing wrong? Thanks in advance.

*No products are associated with this question.*

Answer by Walter Roberson
on 28 Nov 2012

Accepted answer

The evalin() is part of MATLAB's run() command. However, one should never run() a function.

Instead of giving the command

run fnn

give a command such as

fnn(YourTimeSeries, 3)

where "YourTimeSeries" is "a vertical vector of time series"

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn moreOpportunities for recent engineering grads.

Apply Today
## 1 Comment

## per isakson (view profile)

Direct link to this comment:https://www.mathworks.com/matlabcentral/answers/55003#comment_113959