這裏是一個文件: http://www.ee.columbia.edu/~dpwe/e6820/matlab/stft.m任何人都可以讓我理解這個MATLAB代碼嗎?
和行:
else
win = w;
w = length(w);
end
爲什麼w
已分配length(w)
如果w
沒有在代碼不再使用?
這裏是一個文件: http://www.ee.columbia.edu/~dpwe/e6820/matlab/stft.m任何人都可以讓我理解這個MATLAB代碼嗎?
和行:
else
win = w;
w = length(w);
end
爲什麼w
已分配length(w)
如果w
沒有在代碼不再使用?
stft.m的第三個輸入可以是包含窗口大小的標量,也可以是窗口本身。在內部,窗口表示爲win
,窗口大小爲w
。
因此,如果窗口本身已被傳遞給該函數,則可以直接從輸入中讀取win
,並且w
必須用其長度替換以保持一致。
由於其代碼中不再使用w
,所以不需要替換w
其長度。但是,它有助於調試,因爲變量分配的是一致的值,並且如果在將來以包含窗口大小w
的方式改進算法,它便於擴展代碼。
簡而言之:目前不需要該行,但從長遠來看,改善了代碼的可維護性。
該死的,這將是很難重寫它在C#中:/ – zgnilec
可能是一種無害的錯誤,沒有不良副作用。沒有人寫無瑕的代碼。 – mathematician1975