Right, you don't have a matrix but a table. Using correct term avoids wasting everyone time. matrices and tables are two completely different things.
All columns of a table must be named. I question the wisdom of adding so many columns to a table, particularly as the value are trivial to calculate whenever you need them, but if it needs to be done, the simplest thing would be to prepend (or append) the names of the existing columns with 'squared' and 'cubed' respectively. This is easily done:
yourtable = array2table(randi([0 100], 20, 46));
newtable = [yourtable, ...
array2table(yourtable{:, 12:18} .^2, 'VariableNames', compose('squared_%s', string(yourtable.Properties.VariableNames(12:18)))), ...
array2table(yourtable{:, 12:18} .^3, 'VariableNames', compose('cubed_%s', string(yourtable.Properties.VariableNames(12:18))))]
Best Answer