How to reorganize an array given an index
3 views (last 30 days)
Show older comments
Scarlet Passer
on 25 Nov 2020
Commented: Scarlet Passer
on 25 Nov 2020
So I have a 65x1 array in which the first 42 elements are numbers and the last 23 elements are NaN. I would like to reorganize the array by putting the NaNs at the end into certain indicies within the array that I have flagged.
More simplistically I want something like this:
array = [1,2,3,4,5,NaN,NaN,NaN];
idx_flag = [1,4,8];
%i want
new_array = [NaN,1,2,NaN,3,4,5,NaN];
Thanks!
0 Comments
Accepted Answer
the cyclist
on 25 Nov 2020
Edited: the cyclist
on 25 Nov 2020
Here is one way:
% Inputs
array = [1,2,3,4,5,NaN,NaN,NaN];
idx_flag = [1,4,8];
% Get length of array for convenience
L = numel(array);
% Find where the non-NaNs will go
not_idx_flag = setxor(1:L,idx_flag);
% Allocate a new array with all NaNs
new_array = nan(1,L);
% Place the non-NaNs
new_array(not_idx_flag) = array(~isnan(array));
More Answers (0)
See Also
Categories
Find more on Bartlett in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!