谁能让我理解这个MATLAB代码?

时间:2012-08-27 13:14:31

标签: matlab

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

和行:

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

如果代码中不再使用w,为什么length(w)已分配w

1 个答案:

答案 0 :(得分:4)

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

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

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

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