Variable class¶
(Shortest import: from brian2.core.variables import Variable)
- class brian2.core.variables.Variable(name, dimensions=Dimension(), owner=None, dtype=None, scalar=False, constant=False, read_only=False, dynamic=False, array=False)[source]¶
Bases:
brian2.utils.caching.CacheKey
An object providing information about model variables (including implicit variables such as
t
orxi
). This class should never be instantiated outside of testing code, use one of its subclasses instead.- Parameters
name : ‘str’
The name of the variable. Note that this refers to the original name in the owning group. The same variable may be known under other names in other groups (e.g. the variable
v
of aNeuronGroup
is known asv_post
in aSynapse
connecting to the group).dimensions :
Dimension
, optionalThe physical dimensions of the variable.
owner :
Nameable
, optionalThe object that “owns” this variable, e.g. the
NeuronGroup
orSynapses
object that declares the variable in its model equations. Defaults toNone
(the value used forVariable
objects without an owner, e.g. externalConstant
s).dtype :
dtype
, optionalThe dtype used for storing the variable. Defaults to the preference
core.default_scalar.dtype
.scalar : bool, optional
Whether the variable is a scalar value (
True
) or vector-valued, e.g. defined for every neuron (False
). Defaults toFalse
.constant: bool, optional :
Whether the value of this variable can change during a run. Defaults to
False
.read_only : bool, optional
Whether this is a read-only variable, i.e. a variable that is set internally and cannot be changed by the user (this is used for example for the variable
N
, the number of neurons in a group). Defaults toFalse
.array : bool, optional
Whether this variable is an array. Allows for simpler check than testing
isinstance(var, ArrayVariable)
. Defaults toFalse
.
Attributes
Whether the variable is an array
Whether the variable is constant during a run
The variable's dimensions.
The dtype used for storing the variable.
String representation of the numpy dtype
Whether the variable is dynamically sized (only for non-scalars)
The variable's name.
The
Group
to which this variable belongs.Whether the variable is read-only
Whether the variable is a scalar
The
Unit
of this variableMethods
get_addressable_value
(name, group)Get the value (without units) of this variable in a form that can be indexed in the context of a group.
get_addressable_value_with_unit
(name, group)Get the value (with units) of this variable in a form that can be indexed in the context of a group.
get_len
()Get the length of the value associated with the variable or
0
for a scalar variable.Return the value associated with the variable (without units).
Return the value associated with the variable (with units).
set_value
(value)Set the value associated with the variable.
Details
- array¶
Whether the variable is an array
- constant¶
Whether the variable is constant during a run
- dim¶
The variable’s dimensions.
- dtype¶
The dtype used for storing the variable.
- dtype_str¶
String representation of the numpy dtype
- dynamic¶
Whether the variable is dynamically sized (only for non-scalars)
- is_boolean¶
- is_integer¶
- name¶
The variable’s name.
- read_only¶
Whether the variable is read-only
- scalar¶
Whether the variable is a scalar
- get_addressable_value(name, group)[source]¶
Get the value (without units) of this variable in a form that can be indexed in the context of a group. For example, if a postsynaptic variable
x
is accessed in a synapseS
asS.x_post
, the synaptic indexing scheme can be used.- Parameters
name : str
The name of the variable
group :
Group
The group providing the context for the indexing. Note that this
group
is not necessarily the same asVariable.owner
: a variable owned by aNeuronGroup
can be indexed in a different way if accessed via aSynapses
object.- Returns
variable : object
The variable in an indexable form (without units).
- get_addressable_value_with_unit(name, group)[source]¶
Get the value (with units) of this variable in a form that can be indexed in the context of a group. For example, if a postsynaptic variable
x
is accessed in a synapseS
asS.x_post
, the synaptic indexing scheme can be used.- Parameters
name : str
The name of the variable
group :
Group
The group providing the context for the indexing. Note that this
group
is not necessarily the same asVariable.owner
: a variable owned by aNeuronGroup
can be indexed in a different way if accessed via aSynapses
object.- Returns
variable : object
The variable in an indexable form (with units).
- get_len()[source]¶
Get the length of the value associated with the variable or
0
for a scalar variable.