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

120 ビュー (過去 30 日間)
Ivan
Ivan 2014 年 5 月 1 日
編集済み: Stephen23 2021 年 1 月 7 日
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?

回答 (1 件)

Nikita Agrawal
Nikita Agrawal 2021 年 1 月 7 日
  3 件のコメント
Nikita Agrawal
Nikita Agrawal 2021 年 1 月 7 日
You can keep data empty. Here you go:
Headers = {'A','B'}
Empty_table = cell2table(cell(1,2),'VariableNames'= Headers)
Stephen23
Stephen23 2021 年 1 月 7 日
編集済み: Stephen23 2021 年 1 月 7 日
@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'}

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by