簡體   English   中英

如何在MATLAB中執行Python插值?

[英]how to do this Python interpolation in MATLAB?

我需要在MATLAB中轉換這段Python代碼,但似乎無法弄清楚該如何做。

python循環

T = 1968,
F = 1025,
used_freq = 22050,
freqs = 1621 x 1 vector,
log_scale_spec = 1968 x 1025 matrix,
cent_spec was initialized with zeros = 1968 x 1621 matrix,
and the "linspace(0, used_freq, F)" operation gives a 1025 x 1 vector

插值似乎是三次(k = 3)。

我只是不知道如何在MATLAB中將所有這些一起構造為for循環。 到目前為止,我嘗試過這樣的事情:

Matlab循環

f表示操作“ linspace(0,used_freq,F)'”在Matlab中的注意事項,它必須與'換位。

我正在嘗試使其在Matlab中工作,我不確定如何做到這一點,可能要么缺少循環中的某些索引,要么可能需要轉置某些向量/矩陣或將它們組合。

T = 1968,
F = 1025,
used_freq = 22050,

下面的行是錯誤的陳述。 freqs的更高的尺寸必須小於F。 我可以添加freqs必須包含指數,而不是頻率。

freqs = 1621 x 1 vector - wrong
freqs = F< x 1 vector - right
log_scale_spec = T x F matrix,

您可以刪除下面的行,因為_cent_spec_ evals在循環外

cent_spec=zeros(T,F<)
f=linspace(0, used_freq, F);

for t=1:T
    Sp(:,t)=interp1(f,log_scale_spec(:,t),'cubic');
end
cent_spec=Sp(:,freqs);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM