首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >倍频程变量定义错误

倍频程变量定义错误
EN

Stack Overflow用户
提问于 2016-08-31 18:31:53
回答 1查看 224关注 0票数 0

我正在尝试以倍频程生成Blackman-Harris窗系数。我在.m文件中声明了一个函数,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
function result = BlackmanHarris(window_size)
  a0 = 0.35875
  a1 = 0.48829
  a2 = 0.14128
  a3 = 0.01168
  result = [0:window_size - 1];

  if(nargin != 1)
    print_usage("BlackmanHarris(int window_size)");
  endif

  if(isinteger(window_size))
    for n = 0:window_size - 1
      result(n) = a0 - (a1 * cos((2 * pi * n)/(window_size - 1))) + (a2 * cos((4 * pi * n)/(window_size - 1))) - (a3 * cos((6 * pi * n)/(window_size - 1)));
    endfor
  else
    error("BlackmanHarris: Expecting integer argument.");
  endif
endfunction

当我试图运行它时,我得到了错误:

代码语言:javascript
代码运行次数:0
运行
复制
>> window = BlackmanHarris(window_size);
error: 'a0' undefined near line 15 column 16
error: called from
    BlackmanHarris at line 15 column 14

我曾尝试将变量声明为“全局”和“持久性”,但这两种方法都解决了这个问题。我确信我只是做错了什么,但谷歌在这方面几乎没有什么帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-08-31 19:03:07

正如@Sardar_Usama所说,我试图访问结果数组的元素0,这当然不会起作用。

将其更改为n+1解决了该问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39247192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档