扩展/填充Matlab矩阵
我在Matlab上还很新,所以需要一个小步骤的解释。
我有一些看起来像这样的MIDI数据:
开/关时间
10 1 61
90 0 61
90 1 72
92 1 87
100 0 72
我想做的是扩大或“填补”空白,以便每时每刻都有一行,并且我有几列显示哪些音符在打开(通常同时有多个音符) )。
最终目标是对给定时间(谐波失谐)上音符之间的整体关系进行一些计算。
所以我在想,也许我需要为每个可能的音符(有127个)创建一个新列,然后每次都为1或0。或者,也许我可以有一个矩阵,它告诉我哪些音符在上面(所以列数各不相同)。
我编写了自己的伪代码,但不知道如何实现它。我怀疑有一个简单的功能可以做到这一点。这是我的伪代码:
从0开始,在时间0处为新的“注释矩阵”
对于数字:0到n
如果数字与时间列中的数字匹配,请转到该行的开/关列。
如果开/关列中为1,则将注释列中的编号复制到相应行的“注释上矩阵”
如果为0,则不要复制/不执行任何操作。
如果数字与时间列中的数字不匹配
复制上一行(如果没有注释,则可以为空白)。
对于新的“注释矩阵”中的每一行,将数字从低到高排列在不同的列中。
谁能告诉我该怎么办?我在这里撞墙撞头!
回答&