矩阵复制扩充 matlab,扩展/填充Matlab矩阵

本文讨论了如何在Matlab中扩展或填充MIDI数据矩阵,确保每时每刻都有行数据,同时记录开启的音符。通过累加和方法,将输入数据转换为表示音符开启和关闭的矩阵,并使用`accumarray`和`cumsum`函数实现这一过程。
摘要由CSDN通过智能技术生成

icon1.gif 扩展/填充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,则不要复制/不执行任何操作。

如果数字与时间列中的数字不匹配

复制上一行(如果没有注释,则可以为空白)。

对于新的“注释矩阵”中的每一行,将数字从低到高排列在不同的列中。

谁能告诉我该怎么办?我在这里撞墙撞头!

回答&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值