I want to save a new variable 'highMI_sec' as only the values of mutualInfoTotal that are at least equal to 5 (at end of code). How can I do this?
for i = 1:n_cells spikes = cellspikes{i}; % access cellspikes
spikes = spikes./1000; % ms to secs
spikes = spikes(spikes>startTime&spikes<stopTime); edgesT = linspace(startTime,stopTime,numel(trackingtimes)+1); binnedSpikes = histcounts(spikes,edgesT);% sorts spikes into bins
% also bin headangle data
n_bins_angle = 60; edgesHD = linspace(min(headangle), max(headangle), n_bins_angle +1); [occupancy,~,angle_inds] = histcounts(headangle,edgesHD); for iBin = 1:n_bins_angle spikesPerAngle(iBin) = sum(binnedSpikes(angle_inds == iBin)); end SPA(1,i)={spikesPerAngle}; % compute average firing rate for each HD angle
firing_rate = spikesPerAngle./(occupancy.*deltaT); %this vector is a TUNING CURVE!
FR(1,i) = {firing_rate}; % now compute individual pieces needed to compute mutual info
probability_density = occupancy./sum(occupancy); %proportion of time spent at each HD angle per total occupancy at all angles
PD(1,i)={probability_density}; % compute average firing rate across all HD angles
mean_rate = numel(spikes)./(stopTime-startTime); MR(1,i) = mean_rate; % compute mutual info between firing rate and HD
mutualInfo = sum(firing_rate .* log2(firing_rate./mean_rate) .* probability_density,'omitnan'); MIperspike = mutualInfo./(mean_rate); %store mutual info for each cell into a matrix
mutualInfoTotal(1,i) = mutualInfo; %in bits per second
MISpikeTotal(1,i) = MIperspike;end
Best Answer