I need to call some columns of a table in automated way. The name pof table is T and I use this line to make the T.table_column:
variable_names=strcat('T.',var(i));
and the output of this code is:
variable_names =
1×1 cell array
{'T.i_nPix'}
I need to call T.i_nPix in which T is table name and i_nPix is table column. But this format {'T.i_nPix'} which is cell array and string is not able to be recognized as table.table_column. How can I solve the issue?

 採用された回答

Walter Roberson
Walter Roberson 2019 年 12 月 27 日

0 投票

T.(var{i})

4 件のコメント

Hi Walter. Thanks.
Do you mean I should change the code lik this?
variable_names=strcat('T.(',var(i),')');
Walter Roberson
Walter Roberson 2019 年 12 月 28 日
No, do not construct variable_names in that form -- there is nothing useful (and desirable) you can do with that form.
I need to call T.i_nPix in which T is table name and i_nPix is table column
You would not do that by constructing the string 'T.i_nPix' and then asking MATLAB to convert the string into a table column reference. Instead, in the place you need to use the content of the column you would code
T.(var{i})
For example you could have
T.(var{i}) = T.(var{i}) + 1;
In turn, internally this would be equivalent to
[found, idx] = ismember(var{i}, T.Properties.VariableNames);
if ~found
error('table variable "%s" not found', var{i});
end
T{:,idx} = T{:,idx} + 1;
That is, internally potential column names are looked up in the VariableNames property in order to find the column index, and that numeric index is used in the table.
Stephen23
Stephen23 2019 年 12 月 28 日
"Do you mean I should change the code lik this? strcat('T.(',var(i),')')"
No, that would be entirely the wrong way to go about this. Much simpler and more efficient to follow Walter Roberson's advice... which is the same as the MATLAB documentation:
Walter Roberson
Walter Roberson 2019 年 12 月 29 日
You can also use
T{:,var{i}}

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Tables についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by