仅将所选信息从2d阵列复制到另一个2d阵列



我做了一个python代码,如下所示,我只想读取从EEG到baseline_before的offset_time[I]-33:offset_time[I]-1信息。在python中,它是有效的。但是,我不知道如何在c++中实现这段代码。你知道如何用C++实现吗?我想在[:][:]<-之前执行baseline_bEEG[:][offset_time[i]-33:offset_time[i]-1];

Python代码

offset_time[0] = 100;
offset_time[1] = 200;
for i in range(0, 2):
baseline_before = EEG[:,offset_time[i]-33:offset_time[i]-1]

C++代码

int offset_time[2];
offset_time[0] = 100;
offset_time[1] = 200;
for (int i = 0; i < 64; i++)
{
for (int j = 0; j < 2; j++) {
baseline_before[i][j] = filtered_EEG_data[i][offset_time[j]-32:offset_time[j]-1];
}
}

C没有数组切片。可以使用memcpy()在一个步骤中复制数组的一部分。

size_t len = sizeof(filtered_EEG_data[i]) * 32;
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 2; j++) {
memcpy(baseline_before[i][j], &filtered_EEG_data[i][offset_time[j]-32], len);
}
}

最新更新