table with NaNs into separate cells (2024)

24vues (au cours des 30derniers jours)

Afficher commentaires plus anciens

puccapearl le 24 Avr 2024 à 22:04

  • Lien

    Utiliser le lien direct vers cette question

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells

  • Lien

    Utiliser le lien direct vers cette question

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells

Commenté: Voss le 25 Avr 2024 à 16:42

Réponse acceptée: Voss

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).

table with NaNs into separate cells (2)

Thank you!

0commentaires

Afficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

Connectez-vous pour répondre à cette question.

Réponse acceptée

Voss le 24 Avr 2024 à 22:22

  • Lien

    Utiliser le lien direct vers cette réponse

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#answer_1447401

  • Lien

    Utiliser le lien direct vers cette réponse

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#answer_1447401

Ouvrir dans MATLAB Online

% 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)];

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

10commentaires

Afficher 8 commentaires plus anciensMasquer 8 commentaires plus anciens

puccapearl le 24 Avr 2024 à 23:20

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142826

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142826

Thank you Voss, I now have a cell with tables. How can I pull each table that contains a specific column value. For example in the picture above, I want to pull all the tables where the 3rd column == 1 into a separate cell.

I tried but the tables combine as a double which I don't want, I want to keep the separate tables.

Can also repost as a different question.

Voss le 24 Avr 2024 à 23:41

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142836

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142836

Ouvrir dans MATLAB Online

You're welcome!

One way to have all the tables in separate cells, but only the rows where column 3 is 1, is to split them first, as in my answer, and then:

result = cellfun(@(t)t(t{:,3} == 1,:),result,'UniformOutput',false);

puccapearl le 24 Avr 2024 à 23:54

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142846

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142846

amazing, thank you!

Voss le 25 Avr 2024 à 0:14

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142861

You're welcome!

puccapearl le 25 Avr 2024 à 0:23

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142866

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142866

Voss, one more thing, I want to subtract the first and last values of each table in column 1,

I tried this,

F = @(x)x(end)-x(1);

b = cellfun(F, result , 'un',0);

but I need to index into the first column of each table and I'm not sure how to do this.

Voss le 25 Avr 2024 à 0:54

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142876

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142876

F = @(x)x{end,1}-x{1,1};b = cellfun(F, result);

puccapearl le 25 Avr 2024 à 5:18

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142996

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3142996

Modifié(e): puccapearl le 25 Avr 2024 à 5:23

ah yes I thought so! My issue is, when I do this:

result = cellfun(@(t)t(t{:,3} == 1,:),result,'UniformOutput',false);

I get a cell with some empty tables,

table with NaNs into separate cells (11)

and that gives me an indexing error error when I try to do:

F = @(x)x{end,1}-x{1,1};

b = cellfun(F, result);

Do you know how I can remove the empty tables prior to avoid the error? I tried:

result = table2cell(rmmissing(cell2table(result)))

and

result(cellfun(@isempty,result))=[];

and

result(:,all(ismissing(result)))=[];

and

new_result = rmmissing(result);

but they do not remove the empty tables :/

Voss le 25 Avr 2024 à 14:14

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143511

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143511

Ouvrir dans MATLAB Online

This is how to do it. Try it again.

result(cellfun(@isempty,result)) = [];

puccapearl le 25 Avr 2024 à 16:37

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143721

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143721

It works! Thank you Voss! :D

Voss le 25 Avr 2024 à 16:42

Utiliser le lien direct vers ce commentaire

https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143736

  • Lien

    Utiliser le lien direct vers ce commentaire

    https://fr.mathworks.com/matlabcentral/answers/2111461-table-with-nans-into-separate-cells#comment_3143736

You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Connectez-vous pour répondre à cette question.

Voir également

Catégories

MATLABLanguage FundamentalsMatrices and Arrays

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

Tags

  • tables
  • cells
  • nan

Community Treasure Hunt

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

Start Hunting!

Une erreur s'est produite

Impossible de terminer l’action en raison de modifications de la page. Rechargez la page pour voir sa mise à jour.


Translated by table with NaNs into separate cells (15)

table with NaNs into separate cells (16)

Sélectionner un site web

Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .

Vous pouvez également sélectionner un site web dans la liste suivante :

Amériques

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asie-Pacifique

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Contactez votre bureau local

table with NaNs into separate cells (2024)
Top Articles
Latest Posts
Article information

Author: Mr. See Jast

Last Updated:

Views: 6296

Rating: 4.4 / 5 (75 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Mr. See Jast

Birthday: 1999-07-30

Address: 8409 Megan Mountain, New Mathew, MT 44997-8193

Phone: +5023589614038

Job: Chief Executive

Hobby: Leather crafting, Flag Football, Candle making, Flying, Poi, Gunsmithing, Swimming

Introduction: My name is Mr. See Jast, I am a open, jolly, gorgeous, courageous, inexpensive, friendly, homely person who loves writing and wants to share my knowledge and understanding with you.