gpt4 book ai didi

arrays - 如何在 MATLAB 中的 for 循环内创建比率数组?

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:55 25 4
gpt4 key购买 nike

我想使用 for 循环创建一个数组或音符向量。每个音符,A、A#、B、C...等都是上一个/下一个的 2^(1/12) 比率。例如,音符 A 是 440Hz,A# 是 440 * 2^(1/12) Hz = 446.16Hz。

从 27.5Hz (A0) 开始,我想要一个迭代 88 次的循环来创建每个音符频率高达 4186Hz 的数组,这样看起来会像

f= [27.5 29.14 30.87 ... 4186.01]

到目前为止,我已经理解了这么多:

   f  = [];
for i=1:87,
%what goes here
% f = [27.5 * 2^(i/12)]; ?

end

return;

最佳答案

在 matlab 中不需要为此做一个循环,你可以简单地做:

f = 27.5 * 2.^((0:87)/12)

答案:

f =

Columns 1 through 13

27.5 29.135 30.868 32.703 34.648 36.708 38.891 41.203 43.654 46.249 48.999 51.913 55

Columns 14 through 26

58.27 61.735 65.406 69.296 73.416 77.782 82.407 87.307 92.499 97.999 103.83 110 116.54

Columns 27 through 39

123.47 130.81 138.59 146.83 155.56 164.81 174.61 185 196 207.65 220 233.08 246.94

Columns 40 through 52

261.63 277.18 293.66 311.13 329.63 349.23 369.99 392 415.3 440 466.16 493.88 523.25

Columns 53 through 65

554.37 587.33 622.25 659.26 698.46 739.99 783.99 830.61 880 932.33 987.77 1046.5 1108.7

Columns 66 through 78

1174.7 1244.5 1318.5 1396.9 1480 1568 1661.2 1760 1864.7 1975.5 2093 2217.5 2349.3

Columns 79 through 88

2489 2637 2793.8 2960 3136 3322.4 3520 3729.3 3951.1 4186

关于arrays - 如何在 MATLAB 中的 for 循环内创建比率数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18752849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com