Why Octave doesn't see this object?

Viewed 84

I wanted to code a function in octave, however I found some problems during doing so:

N=700;
T=900;
lambda=N/T;

x=randn(N,T);
s=std(x(:));
r=x*x'/T;
l=eig(r);
lambda_plus=(s^2)*(1+sqrt(lambda))^2;
lambda_minus=(s^2)*(1-sqrt(lambda))^2;

# Define a function - value of this function depenends
# on position of x
function kiki = avg (x)
  if (x <= lambda_plus && x >= lambda_minus)
    (1/(2*pi*lambda*x*s^(2)))*sqrt((lambda_plus-x)*(x-lambda_minus));
  else 
      0
  endif
endfunction

Then I wanted to run this function so I did run avg(2) but it didn't work.

Error I saw was:

error: 'lambda_plus' undefined near line 15, column 15

but it's not true! lambda_plus is defined before the definition of the function!

I read that this problem might be, because octave doesn't see our function and the solution is to:

(1) Save the file with name of the function - in my case avg.m

(2) Open a new file and in new file run your function

I did exactly what they were saying and in newly created file I ran avg(2) but unfortunately with exactly same result.

0 Answers
Related