Filter löschen
Filter löschen

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

116 Ansichten (letzte 30 Tage)
Ivan
Ivan am 1 Mai 2014
Bearbeitet: Stephen23 am 7 Jan. 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?

Antworten (1)

Nikita Agrawal
Nikita Agrawal am 7 Jan. 2021
  3 Kommentare
Nikita Agrawal
Nikita Agrawal am 7 Jan. 2021
You can keep data empty. Here you go:
Headers = {'A','B'}
Empty_table = cell2table(cell(1,2),'VariableNames'= Headers)
Stephen23
Stephen23 am 7 Jan. 2021
Bearbeitet: Stephen23 am 7 Jan. 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'}

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by