微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么 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 举报,一经查实,本站将立刻删除。