mbauman / Signals.jl

An abandoned work-in-progress for a high level Signal type with a common timebase (in seconds) and groups of channels. Deprecated in favor of AxisArrays.jl.
github.com/JuliaArrays/AxisArrays.jl
Other
6 stars 0 forks source link

Extract subset of channels from signal #7

Closed rob-luke closed 9 years ago

rob-luke commented 10 years ago

Hey Matt,

Ive started playing around with Signal.jl with the intention of using it in EEG processing. Is there a method to extract a subset of channels from a Signal type?

If i try subset = sig[1:3] where sig of type Signal it returns a type Array{ContiguousView{Float32,1,Array{Float32,2}},1}

Thanks for your help

mbauman commented 10 years ago

Wonderful! Glad for the report and thanks for poking around. Just note that I'm still not using this for 'production' data analysis as I am still refining the data structures and API.

I'm aware of this awkwardness (it's related to issue #2), and I've been playing with some local commits to try a few different solutions. Clearly we should return something better in this case... but what should that be? One thing I'm playing with is how the API feels when all indexing operations return a Signal, with function accessors to pull out the bare data and time vectors.

The other thing I've been testing is having Signal be abstract, which would allow for a smarter MatrixSignal type like I propose in #2. The issue is that much of my data is huge, as I'm sure yours is, and I don't want to convert a matrix into many vectors (at least not until that can be done without copying the data).

I'll try to clean up my work and push it this week.

rob-luke commented 10 years ago

Im just playing around, so don't fret about 'production' analysis.

My first thought is that indexing returning a Signal would work well.
I will be happy to play with it a bit more once you've committed if you would like a second opinion.