为什么 Octave 看不到这个对象?

问题描述

我想用八度来编写一个函数,但是我在这样做的过程中发现了一些问题:

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

然后我想运行这个函数,所以我确实运行了 avg(2) 但它不起作用。

我看到的错误是:

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

但这不是真的! lambda_plus 定义在函数定义之前!

我读到这个问题可能是,因为八度没有看到我们的功能解决方案是:

(1) 用函数名保存文件 - 在我的例子中 avg.m

(2) 打开一个文件并在新文件中运行你的函数

我完全按照他们说的做了,并在新创建的文件中运行了 avg(2),但不幸的是结果完全相同。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)