如何在 MATLAB 中对大型数据集 select 2 行并跳过 3 行?
How to select 2 rows and skip 3 rows for large datasets in MATLAB?
我正在进行研究,我的矩阵是 1082825x23。我已经将 table 与我想要的列分开,所以它现在是 1082825x1 的 table。我在 Mathworks 论坛上查看了有关选择特定行并跳过某些行的内容,但是论坛中的数据集相当小,因此对大型数据集没有帮助。
我在 Mathworks 上找到的最接近的是我修改过的这段代码
keepRowsIdx = setdiff(4:size(gyro_x, 1), 6:3:size(gyro_x, 1));
new_gyro_x = gyro_x(keepRowsIdx, :);
但是它给出了 new_gyro_x 产生如下结果
0.0047
0.0105
0.0117
0.0234
0.0105
0.0328
etc...
实际上,我试图在整个专栏中获取我在下图中突出显示的值。我想我需要使用 for 循环,但我不确定如何处理它。
一种方法可能是创建两个具有相同跳跃因子但具有唯一起始索引的向量。然后将这两个向量连接并重塑为一个列向量,可用于索引存储在 gyro_x
.
中的值
%Test vector, change to your dataset%
gyro_x = table((1:1082825).');
gyro_x = table2array(gyro_x);
Start = 4; End = 15; Skipping_Factor = 5;
Indices = (Start:Skipping_Factor:End);
Indices = reshape([Indices; Indices+1],[1 2*numel(Indices)]);
gyro_x(Indices)
我正在进行研究,我的矩阵是 1082825x23。我已经将 table 与我想要的列分开,所以它现在是 1082825x1 的 table。我在 Mathworks 论坛上查看了有关选择特定行并跳过某些行的内容,但是论坛中的数据集相当小,因此对大型数据集没有帮助。
我在 Mathworks 上找到的最接近的是我修改过的这段代码
keepRowsIdx = setdiff(4:size(gyro_x, 1), 6:3:size(gyro_x, 1));
new_gyro_x = gyro_x(keepRowsIdx, :);
但是它给出了 new_gyro_x 产生如下结果
0.0047
0.0105
0.0117
0.0234
0.0105
0.0328
etc...
实际上,我试图在整个专栏中获取我在下图中突出显示的值。我想我需要使用 for 循环,但我不确定如何处理它。
一种方法可能是创建两个具有相同跳跃因子但具有唯一起始索引的向量。然后将这两个向量连接并重塑为一个列向量,可用于索引存储在 gyro_x
.
%Test vector, change to your dataset%
gyro_x = table((1:1082825).');
gyro_x = table2array(gyro_x);
Start = 4; End = 15; Skipping_Factor = 5;
Indices = (Start:Skipping_Factor:End);
Indices = reshape([Indices; Indices+1],[1 2*numel(Indices)]);
gyro_x(Indices)