在matlab中删除数据集中的一定数量的行

时间:2014-12-04 14:42:28

标签: matlab

我有一个大型数据集,我从我的计算机上记录数据和另一个来自燃料电池测试台的数据集中获取。

我遇到的问题是在数据之间有相同的时间,因为我的计算机可以记录最大5 Hz,但工作台记录的频率为10 Hz。

因此,对于一个示例,我有一个100x1的数据集,另一个50x1都在10秒运行,但我想删除。(奇数)行,并在100x1数据集上保留。(偶数)行。

或者,如果我以2 Hz的频率登录我的计算机,但是工作台仍然以10 Hz的频率登录,那么我想删除.1 .2 .3 .4和.6 .7 .8 .9,无论数字是多少在它面前。

1 个答案:

答案 0 :(得分:0)

正如@kkuilla所说,没有例子就很难回答。

以下是我认为您正在寻找的内容:

x = rand(100,1);   %Generate sample data
oddsubset = x(1:2:100);   %Sample odd numbered points
evensubset = x(2:2:100);  %Sample even numbered points
twohertzsubset = x(1:5:100);  % Sample every 5th point

如评论中所述,其中任何一个也可以分配回原始变量。上述示例中的重新分配是为了更容易地支持多个案例。

x = x(1:2:100);   % Keep only odd numbered points and overwrites the original variable