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

标签 arrays matlab loops for-loop

我想使用 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/

相关文章:

java - 为什么 Char 变量在没有声明 char 数组的情况下存储堆栈的过去值?看到代码了吗?

javascript - 如何创建一个与数组具有相同属性的javascript对象?

python - 相当于matplotlib中matlab的imagesc?

matlab - 基于两个向量 MATLAB 构造此矩阵

java - 为什么这些java行会进入无限循环

loops - 从文件中读取行,遍历每一行和该行中的每个字符

android - 在android中实现循环执行?

java - Java对象数组是如何使用的?

c++ - 正确使用c++中的Matlab "engine.h"

css - 在 SASS 中创建一个集合(数组)用于@for 循环