How to replace a string with another string in specific table columns

4 views (last 30 days)
Hello,
Im trying to replace all [] with '-99' only in the columns that begin with Q_ in the table t below. How would I do that with an index ? Its important that I dont use the variables names.
% data
Q_x = {'1'; '[]'; '3'};
a = {'A'; 'B'; 'C'};
o = {'A'; '[]'; 'C'};
Q_y = {'1'; '[]'; '3'};
t = table(Q_x, a, o, Q_y)
all_vars = t.Properties.VariableNames;
index = find(strncmp(all_vars, 'Q_', 2));
Thank you,

Accepted Answer

Daniel M
Daniel M on 28 Oct 2019
t{:,index} = regexprep(t{:,index},'\[\]','-99')

More Answers (1)

Guillaume
Guillaume on 28 Oct 2019
Edited: Guillaume on 28 Oct 2019
One easy way:
missinglocs = ismissing(t, '[]');
newt = fillmissing(t, 'constant', '-99', 'DataVariables', startsWith(t.Properties.VariableNames, 'Q_'), 'MissingLocations', missinglocs)

Tags

Community Treasure Hunt

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

Start Hunting!