How to reorganize an array given an index

3 vues (au cours des 30 derniers jours)
Scarlet Passer
Scarlet Passer le 25 Nov 2020
Commenté : Scarlet Passer le 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!

Réponse acceptée

the cyclist
the cyclist le 25 Nov 2020
Modifié(e) : the cyclist le 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));
  1 commentaire
Scarlet Passer
Scarlet Passer le 25 Nov 2020
Thanks so much it worked great!

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by