Split String in a Table

6 Ansichten (letzte 30 Tage)
Aldrich To
Aldrich To am 10 Nov. 2015
Kommentiert: Stephen23 am 22 Okt. 2024
Hello,
I am attempting to split a string in a table. I am not sure what approach I should be taking. Do I convert the table into an array first, use strsplit, and then recombine arrays into a table?
When I try to use table2array, I get the following error: Cannot concatenate the table variables 'Arbitrary', because their types are double and cell.
Thanks!

Antworten (1)

Tejas
Tejas am 22 Okt. 2024
Hello Aldrich,
To split the strings in a column, follow the steps in the example below:
  • Make sure the column with strings is a cell array of strings.
T = table([1; 2; 3], {'a,b,c'; 'd,e,f'; 'g,h,i'}, 'VariableNames', {'Numeric', 'StringColumn'});
splitStrings = cellfun(@(x) strsplit(x, ','), T.StringColumn, 'UniformOutput', false);
  • Place these split strings into new, separate columns of the table.
maxSplits = max(cellfun(@length, splitStrings));
for i = 1:maxSplits
T.(['Part' num2str(i)]) = cellfun(@(x) x{i}, splitStrings, 'UniformOutput', false);
end
Below is a screenshot of the expected outcome:
  1 Kommentar
Stephen23
Stephen23 am 22 Okt. 2024
Num = [1;2;3];
Str = ["a,b,c"; "d,e,f"; "g,h,i"];
tbl = table(Num,Str)
tbl = 3x2 table
Num Str ___ _______ 1 "a,b,c" 2 "d,e,f" 3 "g,h,i"
out = splitvars(convertvars(tbl,@isstring,@(s)split(s,',')))
out = 3x4 table
Num Str_1 Str_2 Str_3 ___ _____ _____ _____ 1 "a" "b" "c" 2 "d" "e" "f" 3 "g" "h" "i"

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by