Matlab experience¶
CoSMoMVPA is written with simplicity in mind, and therefore does not require one to be a Matlab expert. However, some minimal knowledge is required. To assess your knowledge of Matlab, below we describe some (subjectively chosen) criteria.
Using these criteria, we would argue that using CoSMoMVPA to analyze your data requires at least the advanced beginner level.
In order to understand implementations, and/or contribute code, the competent level would be required and the proficient level is preferable.
Advanced beginner¶
The advanced beginner should know be familiar with:
starting and exiting Matlab.
modifying the Matlab path.
using the Matlab editor.
array,cellandstructdata objects, and how to store data in and retrieve data from these.the difference between a
numeric,charandlogicaldata type.the concepts of a scalar, row vector, column vector, and matrix.
difference between a
scriptand afunction.using a
function, and see thehelpdocumentation associated with a function.be familiar with
forandwhileloops.understand the
ifstatement.
Competent user¶
In addition, the competent user should be familiar with:
using function handles.
allocating memory for data.
difference between using a binary mask and indices to access values in a
cellorstruct.linear and subscripts to access values in a
cellorstruct.vararginandnargin.perform basic string manipulations.
Proficient user¶
In addition, the proficient user should be familar with:
nested function handles and Currying.
bsxfunandcellfun.recursion.
the debugging mode and using break points.
space- and time complexity.
data structures.
basic linear algebra.
linear- and sub-indexing.
modular design of functions.
namespaces and closures.
profiling.
unit testing.
git.
(Some other advanced concepts include exceptions and object-oriented programming, but these are, by deliberate decision, not used in CoSMoMVPA).
We have no idea what an expert user should be able to do, because we don’t consider ourselves in that category.