Skip to main content

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.).

src/examples/ex_mne_api/main.cpp
// 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​

Used in examples​

ex_mne_api​

MNE library: BEM surfaces, surface projection, ICP, source spaces and epochs.

src/examples/ex_mne_api/main.cpp, line 423
// 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​