1

这是一个文件: http ://www.ee.columbia.edu/~dpwe/e6820/matlab/stft.m

和行:

else
  win = w;
  w = length(w);
end

为什么在代码中不再使用ifw分配?length(w)w

4

1 回答 1

4

stft.m 的第三个输入可以是包含窗口大小的标量,也可以是窗口本身。在内部,窗口表示为win,窗口大小为w

因此,如果窗口本身已被传递给函数,win则可以直接从输入中读取,并且w必须用其长度替换以保持一致。

w不需要用它的长度替换,因为w代码中不再使用它。但是,它有助于调试,因为变量被分配了一致的值,并且它有助于代码的扩展,如果将来以涉及窗口大小的方式改进算法w

简而言之:目前不需要该行,但从长远来看可以提高代码的可维护性。

于 2012-08-27T13:35:27.000 回答