How can you create an empty table object with named columns?

115 visualizaciones (últimos 30 días)
Ivan
Ivan el 1 de Mayo de 2014
Editada: Stephen23 el 7 de En. de 2021
How can you create an empty table object with named columns?
I have a loop that logically does something like this:
a = 1
b = 2
t = [t; table(a, b)]
a = 5
b = 6
t = [t; table(a, b)]
However, I want to add an assert after each row creation, like this:
a = 1
b = 2
t = [t; table(a, b)]
assert(0 == sum(t{:,{'a'}} == t{:,{'b'}}))
a = 5
b = 6
t = [t; table(a, b)]
assert(0 == sum(t{:,{'a'}} == t{:,{'b'}}))
But since t starts off empty, before I run t{:,{'a'}} I have to check if t is empty. I imagine if I can have named columns in an empty table, the problem can be solved?

Respuestas (1)

Nikita Agrawal
Nikita Agrawal el 7 de En. de 2021
  3 comentarios
Nikita Agrawal
Nikita Agrawal el 7 de En. de 2021
You can keep data empty. Here you go:
Headers = {'A','B'}
Empty_table = cell2table(cell(1,2),'VariableNames'= Headers)
Stephen23
Stephen23 el 7 de En. de 2021
Editada: Stephen23 el 7 de En. de 2021
@Nikita Agrawal: sure. But the original question asked about an empty table, not empty data.
To make an empty table, the input cell array must be empty too:
Headers = {'A','B'}
Headers = 1x2 cell array
{'A'} {'B'}
Empty_table = cell2table(cell(0,2),'VariableNames', Headers)
Empty_table = 0x2 empty table
Empty_table.Properties.VariableNames
ans = 1x2 cell array
{'A'} {'B'}

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by