diff options
Diffstat (limited to 'pyspike')
-rw-r--r-- | pyspike/SpikeTrain.py | 10 | ||||
-rw-r--r-- | pyspike/isi_distance.py | 7 |
2 files changed, 15 insertions, 2 deletions
diff --git a/pyspike/SpikeTrain.py b/pyspike/SpikeTrain.py index a02b7ab..9127b60 100644 --- a/pyspike/SpikeTrain.py +++ b/pyspike/SpikeTrain.py @@ -48,3 +48,13 @@ class SpikeTrain(object): """ return SpikeTrain(self.spikes.copy(), [self.t_start, self.t_end]) + + def get_spikes_non_empty(self): + """Returns the spikes of this spike train with auxiliary spikes in case + of empty spike trains. + """ + if len(self.spikes) < 2: + return np.unique(np.insert([self.t_start, self.t_end], 1, + self.spikes)) + else: + return self.spikes diff --git a/pyspike/isi_distance.py b/pyspike/isi_distance.py index 2a1ed3a..5ea555d 100644 --- a/pyspike/isi_distance.py +++ b/pyspike/isi_distance.py @@ -41,7 +41,8 @@ Falling back to slow python backend.") from cython.python_backend import isi_distance_python \ as isi_profile_impl - times, values = isi_profile_impl(spike_train1.spikes, spike_train2.spikes, + times, values = isi_profile_impl(spike_train1.get_spikes_non_empty(), + spike_train2.get_spikes_non_empty(), spike_train1.t_start, spike_train1.t_end) return PieceWiseConstFunc(times, values) @@ -73,7 +74,9 @@ def isi_distance(spike_train1, spike_train2, interval=None): try: from cython.cython_distances import isi_distance_cython \ as isi_distance_impl - return isi_distance_impl(spike_train1.spikes, spike_train2.spikes, + + return isi_distance_impl(spike_train1.get_spikes_non_empty(), + spike_train2.get_spikes_non_empty(), spike_train1.t_start, spike_train1.t_end) except ImportError: # Cython backend not available: fall back to profile averaging |