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
,cell
andstruct
data objects, and how to store data in and retrieve data from these.the difference between a
numeric
,char
andlogical
data type.the concepts of a scalar, row vector, column vector, and matrix.
difference between a
script
and afunction
.using a
function
, and see thehelp
documentation associated with a function.be familiar with
for
andwhile
loops.understand the
if
statement.
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
cell
orstruct
.linear and subscripts to access values in a
cell
orstruct
.varargin
andnargin
.perform basic string manipulations.
Proficient user¶
In addition, the proficient user should be familar with:
nested function handles and Currying.
bsxfun
andcellfun
.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.