1234567891011121314151617181920212223242526272829303132333435363738 |
- % Minimal example for MATLAB users
- clear all
- % Load data from the specially prepared matlab files
- % PLEASE NOTE: These are not the original data files, and are provided for
- % convenience only. These files contain the data structures returned by the
- % Python loading routines, converted to a matlab format. Thus, these files
- % contain a condensed, interpreted subset of the original data.
- % Note that due to file size restrictions in the MATLAB file format, raw
- % signals are saved in separate files, channel by channel.
- data = load("../datasets_matlab/i140703-001_lfp-spikes.mat");
- % Plot the LFP and spikes of electrode 62 from 3s to 5s
- % Note: All annotations of the original Python data objects are saved as
- % "an_XXX" in the matlab structs
- for i=1:length(data.block.segments{1}.analogsignals)
- if data.block.segments{1}.analogsignals{i}.an_channel_id==62
- % LFP
- % Sampled at 1KHz
- time_axis = [0:1/data.block.segments{1}.analogsignals{i}.sampling_rate:(length(data.block.segments{1}.analogsignals{i}.signal)-1)/data.block.segments{1}.analogsignals{i}.sampling_rate];
- plot(time_axis(3000:5000), data.block.segments{1}.analogsignals{i}.signal(3000:5000), 'k-');
- hold on
-
- % Spikes
- for t=1:length(data.block.segments{1}.spiketrains{i}.times)
- % Spikes are saved in the native resolution of 30kHz
- st = data.block.segments{1}.spiketrains{i}.times(t) / 30000;
- if st>=3 && st<=5
- plot(st,0,'rx');
- end
- end
- xlabel("time [1/" + data.block.segments{1}.analogsignals{i}.sampling_rate_units + "]");
- ylabel("LFP [" + data.block.segments{1}.analogsignals{i}.signal_units + "]");
- title(data.block.segments{1}.analogsignals{i}.description);
- end
- end
|