MATLAB: Tables: Create new variables by modifying existing ones

cell arraysfilterstringstringstable

Dear All,
I have a table and I would like to create new variables (columns) by modfying existing ones. I have seen examples where poeple apply functions, but these were typically restricted to numerical operations. Supoose I have the following table:
A B C
obs1 te:st X
obs2 test Y
I would like to create
A B C D
obs1 te:st X testX
obs2 test Y testY
So:
  1. Drop special characters (":")
  2. Append two string columns.
Can anyone help me out?
Thanks in advance!

Best Answer

Use regexprep to replace patterns (with empty strings in your case), and strcat to concatenate cell arrays of strings:
t = cell2table({'obs1', 'te:st', 'X'; 'obs2', 'test', 'Y'}, 'VariableNames', {'A', 'B', 'C'})
t.D = strcat(regexprep(t.B, '\W', ''), test.C)
The regular expresion I've used will drop any character other than [a-ZA-Z0-9_]