看板 MATLAB 關於我們 聯絡資訊
小弟還是matlab新手 這邊有個比較抽象的問題 想請問各位 剛剛在使用matlab的fft(x,N)指令時 把這個指令放在function中呼叫時(N取決於輸入) 會有警告N這個變數必須是正整數 因此我在function中有先把N的直前面加上fix 可是 程式的執行時間卻上升了(tic toc來測) 當我把N直接設定為常數時(直接用自己的輸入來計算好代入N) 執行時間又快了不少 實在不太理解為何 另外 在function中的array的index使用變數(取決於輸入) 是不是會有error的風險? 因為當我不是使用function時 array為變數就都沒問題 這方面有什麼可以改善嗎? 小弟還是新手 還請各位多多指導 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.100 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1541748276.A.C24.html
profyang: 第一個問題 fft在N是2的整數次方時是最快的 其實我沒看 11/09 20:46
profyang: 懂你麼意思 你本來可能有些因素造成你N不是正整數 但這 11/09 20:46
profyang: 樣fft就不能跑了吧?這樣你怎麼知道後來fix(N)之後的fft 11/09 20:47
profyang: 速度比較快?本來根本不能跑啊? 11/09 20:47
profyang: 第二個問題 使用變數時完全沒問題 但你要注意你這index 11/09 20:49
profyang: 一樣要是正整數就是了 11/09 20:49