|
From: | Matthieu Chourrout |
Subject: | Split data depending on values |
Date: | Wed, 11 Jul 2018 15:34:22 +0200 (CEST) |
function [new_idx, splitting_idx] = split(data_to_rearrange, splitting_values)
splitting_idx = [0 0 0];
[rearranged_data, new_idx] = sortrows(data_to_rearrange, [1 2]);
splitting_idx(2) = -1 + find(rearranged_data(:,1) > splitting_values(1),1);
[rearranged_data(1:splitting_idx(2), :), tmp_idx] = sortrows(rearranged_data(1:splitting_idx(2), :), [2 1]);
new_idx(1:splitting_idx(2)) = new_idx(1:splitting_idx(2))(tmp_idx);
splitting_idx(1) = -1 + find(rearranged_data(1:splitting_idx(2),2) > splitting_values(2),1);
[rearranged_data(splitting_idx(2)+1:end, :), tmp_idx] = sortrows(rearranged_data(splitting_idx(2)+1:end, :), [2 1]);
new_idx(splitting_idx(2)+1:end) = new_idx(splitting_idx(2)+1:end)(tmp_idx);
splitting_idx(3) = -1 + splitting_idx(2) + find(rearranged_data(splitting_idx(2)+1:end,2) > splitting_values(2),1);
endfunction
With this function and the piece of code below, I can achieve it for the quarters. But now I want to split it further.
[I4,s4] = split(centers_of_mass.g,[acquisition_parameters.camera.center.x acquisition_parameters.camera.center.y]);
[I4,s4] = split(centers_of_mass.g,[1024 1024]);
centers_of_mass.g = centers_of_mass.g(I4,:);
centers_of_mass.r = centers_of_mass.r(I4,:);
centers_of_mass.b = centers_of_mass.b(I4,:);
splitted_centers_of_mass.mean_g = [ nanmean(centers_of_mass.g(1:s4(1),:)) ; ...
nanmean(centers_of_mass.g(s4(1)+1:s4(2),:)) ; ...
nanmean(centers_of_mass.g(s4(2)+1:s4(3),:)) ; ...
nanmean(centers_of_mass.g(s4(3)+1:end,:)) ];
splitted_centers_of_mass.mean_r = [ nanmean(centers_of_mass.r(1:s4(1),:)) ; ...
nanmean(centers_of_mass.r(s4(1)+1:s4(2),:)) ; ...
nanmean(centers_of_mass.r(s4(2)+1:s4(3),:)) ; ...
nanmean(centers_of_mass.r(s4(3)+1:end,:)) ];
splitted_centers_of_mass.mean_b = [ nanmean(centers_of_mass.b(1:s4(1),:)) ; ...
nanmean(centers_of_mass.b(s4(1)+1:s4(2),:)) ; ...
nanmean(centers_of_mass.b(s4(2)+1:s4(3),:)) ; ...
nanmean(centers_of_mass.b(s4(3)+1:end,:)) ];
[Prev in Thread] | Current Thread | [Next in Thread] |