I want to call the fifth column from a table

2 次查看(过去 30 天)
Hi all, I want to call the columns from a table dynamically
cellCol ={'column_1' ,'column_2', 'column_3','column_4', 'column_5'};
inputTable = array2table(trainingData, 'VariableNames',cellCol);
predictorNames = cellCol(1:end-1);
predictors = inputTable(:, predictorNames);
response = inputTable.cellCol{length(cellCol)};
But it gives the following error
Error using tabular/subsrefDot (line 118)
Unrecognized variable name 'cellCol'.
Error in tabular/numArgumentsFromSubscript (line 55)
x = t.subsrefDot(s(1));
Is there a way to call a column from a table without typing its name?
Thank you

回答(2 个)

madhan ravi
madhan ravi 2019-1-17
编辑:madhan ravi 2019-1-17
  2 个评论
Omer Yasin Birey
Omer Yasin Birey 2019-1-17
Thank you Madhan but I know this way. My question is about how to do it dynamically. I realized that I should edit the question.
madhan ravi
madhan ravi 2019-1-17
Still not clear upload your table with datas and illustrate an example of output.

请先登录,再进行评论。


Peter Perkins
Peter Perkins 2019-1-23
Same way you'd do it with a struct: "dynamic field indexing", or "dynamic variable indexing" in this case.
response = inputTable.(cellCol{length(cellCol)})
If you want more than one var, use braces:
responses = inputTable{:,cellCol(whichVars)}

标签

Community Treasure Hunt

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

Start Hunting!

Translated by