MATLAB says that my variable activity_dff changes size on every loop iteration and for this reason I should consider preallocating. I do know the size of the array before the for loop begins (I do know it'll always have 1 row and n columns, where n is equal to the number of rows of another variable Activity_smooth), so I should probably preallocate it and then shrink it afterwards by doing: X = X(1:n,:);
%% Calculate dff
fd = prctile(Activity_smooth,10); %baseline, f0
% Calculating Activity(k)-fd/fd for photometry
for k = 1:length(Activity_smooth) Activity_dff(k) = (Activity_smooth(k)-fd)/fd;endActivity_dff_ds = group_z_project_vector(Activity_dff,2560); %to see in epoch
end
Is the following code correct? And how do I make sure it's faster than the previous one?
%% Calculate dfffd = prctile(Activity_smooth,10); %baseline, f0% Calculating Activity(k)-fd/fd for photometryActivity_dff = zeros(1,1000000);for k = 1:length(Activity_smooth) Activity_dff(k) = (Activity_smooth(k)-fd)/fd;endActivity_dff = Activity_dff(:,1:length(Activity_smooth));Activity_dff_ds = group_z_project_vector(Activity_dff,2560); %to see in epoch end
Best Answer