Effacer les filtres
Effacer les filtres

table with NaNs into separate cells

3 vues (au cours des 30 derniers jours)
puccapearl
puccapearl le 24 Avr 2024
Commenté : Voss le 25 Avr 2024
I have a table (M) with 4 columns (columns named X, Y, Z,K) , there is a break between the data that loads as NaN.
I want place each data chunk into cells with all 4 columns (X, Y, Z,K).
Thank you!

Réponse acceptée

Voss
Voss le 24 Avr 2024
% making a table with some all-NaN rows:
Var = randi(100,12,4);
Var([3 9],:) = NaN;
M = array2table(Var)
M = 12x4 table
Var1 Var2 Var3 Var4 ____ ____ ____ ____ 7 12 6 2 80 39 44 44 NaN NaN NaN NaN 48 78 45 83 3 97 37 62 35 55 21 4 37 44 22 79 85 95 92 85 NaN NaN NaN NaN 98 21 58 64 13 57 8 58 96 89 36 89
% split the table on the all-NaN rows into a cell array of tables:
idx = find(all(isnan(M{:,:}),2));
s_idx = [1; idx+1];
e_idx = [idx-1; size(M,1)];
result = arrayfun(@(s,e)M(s:e,:),s_idx,e_idx,'UniformOutput',false)
result = 3x1 cell array
{2x4 table} {5x4 table} {3x4 table}
celldisp(result)
result{1} = Var1 Var2 Var3 Var4 ____ ____ ____ ____ 7 12 6 2 80 39 44 44 result{2} = Var1 Var2 Var3 Var4 ____ ____ ____ ____ 48 78 45 83 3 97 37 62 35 55 21 4 37 44 22 79 85 95 92 85 result{3} = Var1 Var2 Var3 Var4 ____ ____ ____ ____ 98 21 58 64 13 57 8 58 96 89 36 89
  10 commentaires
puccapearl
puccapearl le 25 Avr 2024
It works! Thank you Voss! :D
Voss
Voss le 25 Avr 2024
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by