Projection operator managing a set of linear projection items and the final compiled projector matrix. More...
#include <mne_proj_op.h>
Public Types | |
| typedef QSharedPointer< MNEProjOp > | SPtr |
| typedef QSharedPointer< const MNEProjOp > | ConstSPtr |
| using | RowMajorMatrixXf = Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> |
Public Member Functions | |
| MNEProjOp () | |
| Default constructor. | |
| ~MNEProjOp () | |
| Destructor. | |
| void | free_proj () |
| Release the compiled projector data. | |
| MNEProjOp * | combine (MNEProjOp *from) |
| Append all projection items from another operator. | |
| void | add_item_active (const MNENamedMatrix *vecs, int kind, const QString &desc, int is_active) |
| Add a projection item with an explicit active/inactive state. | |
| void | add_item (const MNENamedMatrix *vecs, int kind, const QString &desc) |
| Add a projection item that is active by default. | |
| MNEProjOp * | dup () const |
| Create a deep copy of this projection operator. | |
| int | affect (const QStringList &list, int nlist) |
| int | affect_chs (const QList< FIFFLIB::FiffChInfo > &chs, int nch) |
| int | project_vector (float *vec, int nvec, int do_complement) |
| void | report_data (QTextStream &out, const char *tag, int list_data, char **exclude, int nexclude) |
| void | report (QTextStream &out, const char *tag) |
Static Public Member Functions | |
| static MNEProjOp * | create_average_eeg_ref (const QList< FIFFLIB::FiffChInfo > &chs, int nch) |
| Create an average EEG reference projector. | |
| static MNEProjOp * | read_from_node (FIFFLIB::FiffStream::SPtr &stream, const FIFFLIB::FiffDirNode::SPtr &start) |
| Read all linear projection items from a FIFF tree node. | |
| static MNEProjOp * | read (const QString &name) |
Public Attributes | |
| QList< MNELIB::MNEProjItem > | items |
| int | nitems |
| QStringList | names |
| int | nch |
| int | nvec |
| RowMajorMatrixXf | proj_data |
Projection operator managing a set of linear projection items and the final compiled projector matrix.
MNEProjOp aggregates zero or more MNEProjItem entries, each holding a named matrix of projection vectors. When the operator is compiled (make_projector), the individual items are orthogonalised into a single dense projector stored in proj_data.
Definition at line 82 of file mne_proj_op.h.
| typedef QSharedPointer<const MNEProjOp> MNELIB::MNEProjOp::ConstSPtr |
Const shared pointer type for MNEProjOp.
Definition at line 86 of file mne_proj_op.h.
| using MNELIB::MNEProjOp::RowMajorMatrixXf = Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> |
Dynamic float matrix stored in row-major order (contiguous rows for C-style interop).
Definition at line 89 of file mne_proj_op.h.
| typedef QSharedPointer<MNEProjOp> MNELIB::MNEProjOp::SPtr |
Shared pointer type for MNEProjOp.
Definition at line 85 of file mne_proj_op.h.
| MNEProjOp::MNEProjOp | ( | ) |
Default constructor.
Creates an empty operator with no projection items.
Definition at line 214 of file mne_proj_op.cpp.
| MNEProjOp::~MNEProjOp | ( | ) |
Destructor.
Definition at line 223 of file mne_proj_op.cpp.
| void MNEProjOp::add_item | ( | const MNENamedMatrix * | vecs, |
| int | kind, | ||
| const QString & | desc ) |
Add a projection item that is active by default.
Convenience wrapper around add_item_active() with is_active = TRUE.
| [in] | vecs | Named matrix holding the projection vectors. |
| [in] | kind | Projection kind constant. |
| [in] | desc | Human-readable description of the projection. |
Definition at line 303 of file mne_proj_op.cpp.
| void MNEProjOp::add_item_active | ( | const MNENamedMatrix * | vecs, |
| int | kind, | ||
| const QString & | desc, | ||
| int | is_active ) |
Add a projection item with an explicit active/inactive state.
The projection kind (MEG/EEG) is auto-detected from channel names.
| [in] | vecs | Named matrix holding the projection vectors. |
| [in] | kind | Projection kind constant. |
| [in] | desc | Human-readable description of the projection. |
| [in] | is_active | Whether the item is active on load. |
Definition at line 259 of file mne_proj_op.cpp.
| int MNEProjOp::affect | ( | const QStringList & | list, |
| int | nlist ) |
Count how many active projection vectors affect a given list of channel names.
| [in] | list | List of channel names to test. |
| [in] | nlist | Number of channel names. |
Definition at line 362 of file mne_proj_op.cpp.
| int MNEProjOp::affect_chs | ( | const QList< FIFFLIB::FiffChInfo > & | chs, |
| int | nch ) |
Count how many active projection vectors affect the given channels. Convenience wrapper that extracts channel names and delegates to affect().
| [in] | chs | Channel information list. |
| [in] | nch | Number of channels. |
Definition at line 376 of file mne_proj_op.cpp.
Append all projection items from another operator.
Each item's active_file flag is preserved.
| [in] | from | Source operator whose items are copied. |
Definition at line 242 of file mne_proj_op.cpp.
|
static |
Create an average EEG reference projector.
Builds a uniform-weight vector (
) across all EEG channels.
| [in] | chs | Channel information list. |
| [in] | nch | Number of channels. |
Definition at line 327 of file mne_proj_op.cpp.
| MNEProjOp * MNEProjOp::dup | ( | ) | const |
Create a deep copy of this projection operator.
Copies all items, their vectors, descriptions, and active states.
Definition at line 310 of file mne_proj_op.cpp.
| void MNEProjOp::free_proj | ( | ) |
| int MNEProjOp::project_vector | ( | float * | vec, |
| int | nvec, | ||
| int | do_complement ) |
Apply the compiled projection operator to a data vector in-place.
If do_complement is true, the projected components are subtracted from vec (signal cleaning). Otherwise, vec is replaced by the projection itself.
| [in,out] | vec | Data vector of length nch. |
| [in] | nvec | Expected number of channels (must match nch). |
| [in] | do_complement | If non-zero, compute the complement (I - P) * vec. |
Definition at line 394 of file mne_proj_op.cpp.
|
static |
Read a projection operator from a FIFF file by path. Convenience wrapper that opens the file and delegates to read_from_node().
| [in] | name | Path to the FIFF file. |
Definition at line 591 of file mne_proj_op.cpp.
|
static |
Read all linear projection items from a FIFF tree node.
| [in] | stream | An open FIFF stream. |
| [in] | start | The tree node to search for projection blocks. |
Definition at line 441 of file mne_proj_op.cpp.
| void MNEProjOp::report | ( | QTextStream & | out, |
| const char * | tag ) |
Write a one-line-per-item summary of all projection items to a text stream (no vector data). Convenience wrapper around report_data().
| [in,out] | out | The text stream to write to. |
| [in] | tag | Prefix string printed before each line. |
Definition at line 664 of file mne_proj_op.cpp.
| void MNEProjOp::report_data | ( | QTextStream & | out, |
| const char * | tag, | ||
| int | list_data, | ||
| char ** | exclude, | ||
| int | nexclude ) |
Write a formatted summary of all projection items to a text stream, optionally including the full projection vector data while zeroing out excluded channels.
| [in,out] | out | The text stream to write to. |
| [in] | tag | Prefix string printed before each line. |
| [in] | list_data | If non-zero, print full vector data. |
| [in] | exclude | Array of channel names to exclude from the display. |
| [in] | nexclude | Number of excluded channels. |
Definition at line 611 of file mne_proj_op.cpp.
| QList<MNELIB::MNEProjItem> MNELIB::MNEProjOp::items |
The projection items.
Definition at line 256 of file mne_proj_op.h.
| QStringList MNELIB::MNEProjOp::names |
Names of the channels in the final compiled projector.
Definition at line 258 of file mne_proj_op.h.
| int MNELIB::MNEProjOp::nch |
Number of channels in the final projector.
Definition at line 259 of file mne_proj_op.h.
| int MNELIB::MNEProjOp::nitems |
Number of items.
Definition at line 257 of file mne_proj_op.h.
| int MNELIB::MNEProjOp::nvec |
Number of orthogonalized vectors in the final projector.
Definition at line 260 of file mne_proj_op.h.
| RowMajorMatrixXf MNELIB::MNEProjOp::proj_data |
The compiled projector: orthogonalized projection vectors (nvec x nch).
Definition at line 261 of file mne_proj_op.h.