MNEMeasDataSet
Namespace: MNELIB · Library: MNE Library
#include <mne/mne_meas_data_set.h>
class MNELIB::MNEMeasDataSet
Single measurement epoch or average within MNEMeasData.
Replaces *mneMeasDataSet / mneMeasDataSetRec from MNE-C mne_types.h. Holds the measured data matrix, optional projector / whitened / filtered copies, baseline values, and per-epoch metadata (number of averages, time range, etc.).
// MNE-C measurement container: data set 1 of the evoked file, MEG and EEG channels, time-major
std::unique_ptr<MNEMeasData> meas(MNEMeasData::mne_read_meas_data(aveFile.fileName(), 1, nullptr, nullptr, {}, 0));
const MNEMeasDataSet& left = *meas->current;
const float meg0113 = left.data(180, 0); // t = 99.9 ms
meas->adjust_baselines(-0.2f, 0.0f);
VectorXf at100ms(meas->nchan);
left.getValuesAtTime(0.1f, 0.0f, meas->nchan, false, at100ms.data()); // linear interpolation between samples
Public Methods
MNEMeasDataSet()
Constructs an empty measurement data set.
Refactored from mne_new_meas_data_set (mne_read_data.c).
~MNEMeasDataSet()
Destroys the measurement data set and frees all owned C-style arrays.
Refactored from mne_free_meas_data_set (mne_read_data.c).
getValuesAtTime(time, integ, nch, use_abs, value)
Pick signal values at a specified time point using linear interpolation.
Reads from the data matrix (time-by-time layout: data[sample][channel]) and writes interpolated values into the output array.
Refactored: mne_get_values_from_data (mne_get_values.c)
Parameters:
-
time : float Target time point (seconds).
-
integ : float Integration window width (seconds).
-
nch : int Number of channels to pick.
-
use_abs : bool If true, take absolute values before averaging.
-
value : *float ** Output array of picked values (nch elements).
Returns:
- int — 0 on success, -1 on error.
Static Methods
getValuesFromChannelData(time, integ, data, nsamp, nch, tmin, sfreq, use_abs, value)
Pick signal values at a specified time point using linear interpolation (channel-major layout).
Reads from a channel-by-time data matrix (data[channel][sample]).
Refactored: mne_get_values_from_data_ch (mne_get_values.c)
Parameters:
-
time : float Target time point (seconds).
-
integ : float Integration window width (seconds).
-
data : *float *** Data matrix (channel-by-time layout).
-
nsamp : int Number of time samples.
-
nch : int Number of channels.
-
tmin : float Time of first sample (seconds).
-
sfreq : float Sampling frequency (Hz).
-
use_abs : bool If true, take absolute values before averaging.
-
value : *float ** Output array of picked values (nch elements).
Returns:
- int — 0 on success, -1 on error.
Example
- Full source:
src/examples/ex_mne_api/main.cpp - Build target:
ex_mne_api(runs under CTest) - Data: mne-cpp-test-data
Used in examples
ex_mne_api
MNE library: BEM surfaces, surface projection, ICP, source spaces and epochs.
// MNE-C measurement container: data set 1 of the evoked file, MEG and EEG channels, time-major
std::unique_ptr<MNEMeasData> meas(MNEMeasData::mne_read_meas_data(aveFile.fileName(), 1, nullptr, nullptr, {}, 0));
const MNEMeasDataSet& left = *meas->current;
const float meg0113 = left.data(180, 0); // t = 99.9 ms
meas->adjust_baselines(-0.2f, 0.0f);
VectorXf at100ms(meas->nchan);
left.getValuesAtTime(0.1f, 0.0f, meas->nchan, false, at100ms.data()); // linear interpolation between samples
// mne.read_evokeds(condition=0, baseline=None, proj=False): 366 MEG/EEG channels, 421 samples from -199.8 ms, nave 55;
// MEG 0113 at sample 180 -4.74022e-12. MNE-C's baseline window stops before the sample at 0 s (120 samples, not mne's 121):
// EEG 001 baseline -9.38499e-06, at 100 ms (interpolated) -1.45063e-06
ok &= expect(meas->nchan == 366 && meas->nbad == 2 && left.np == 421 && left.nave == 55 && left.comment == "Left Auditory" && near(left.tmin, -0.19979521315838786, 1e-6) && near(meg0113, -4.740224134628893e-12, 1e-5) && near(at100ms(306), -1.4506279631761285e-06, 1e-4) && near(left.baselines(306), -9.384992481327106e-06, 1e-5),
"MNEMeasData/MNEMeasDataSet: evoked set, baseline and interpolated values match mne");
Authors of this file
- Christoph Dinh <christoph.dinh@mne-cpp.org>