Borrar filtros
Borrar filtros

I want to call the fifth column from a table

2 visualizaciones (últimos 30 días)
Omer Yasin Birey
Omer Yasin Birey el 17 de En. de 2019
Respondida: Peter Perkins el 23 de En. de 2019
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

Respuestas (2)

madhan ravi
madhan ravi el 17 de En. de 2019
Editada: madhan ravi el 17 de En. de 2019
inputTable{:,5} % where inputTable is your table
  2 comentarios
Omer Yasin Birey
Omer Yasin Birey el 17 de En. de 2019
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 el 17 de En. de 2019
Still not clear upload your table with datas and illustrate an example of output.

Iniciar sesión para comentar.


Peter Perkins
Peter Perkins el 23 de En. de 2019
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)}

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by