【发布时间】:2017-03-07 23:10:35
【问题描述】:
我有一个使用 .wav 文件的 fund() 方法生成的矩阵。整个音频文件为 237 秒,但矩阵包含 20468 行。我想在音频的每一秒都有基频,但数据没有每一秒的干净值。例如:
[86,] 0.98690834 0.2450000
[87,] 0.99851903 0.1807377
[88,] 1.01012972 0.2808917
[89,] 1.02174040 0.2463687
[90,] 1.03335109 0.2505682
在这个数据中,第 87 个元素最接近第二个 1 的值,但它不是确切的值。我需要在每一秒内获取最接近的值。我试过这个:
timeSection <- 1:(length(fundData)/2)
for(blah in timeSection){
fundData[blah,1] <- round_any(fundData[blah,1], 0.001, f= floor)
}
它适用于某些数字,但不适用于所有数字,包括第一秒。
[86,] 0.986 0.2450000
[87,] 0.998 0.1807377
[88,] 1.010 0.2808917
[89,] 1.021 0.2463687
提前致谢
编辑:我使用@thelatemail 提供的链接之一找到了我需要的东西。
tempValue <- which(abs(fundData[,1]-songDuration) == min(abs(fundData[,1]-songDuration)))
【问题讨论】: