How to reorganize an array given an index
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Scarlet Passer
am 25 Nov. 2020
Kommentiert: Scarlet Passer
am 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 Kommentare
Akzeptierte Antwort
the cyclist
am 25 Nov. 2020
Bearbeitet: the cyclist
am 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));
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Bartlett finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!