Converting table column of cell arrays to column with comma separated values

12 次查看(过去 30 天)
I have a table where most columns are single values, but two columns are cells that contain multiple values (e.g., 3x1, 4x1, 5x1 cells). I need to convert these columns of cells to columns with comma separated values, so that {'2'} {'3'} {'4'} becomes '2,3,4'. Many rows contain all empty [] cells, and these need to be preserved.
The end goal is that this table needs to be written to a .xlsx file, where the columns with multiple values have all values in a single cell, separated by commas.

采纳的回答

Stephen23
Stephen23 2022-4-6
A = [11;22;33;44;55];
B = {{'1'};{'2';'3';'4'};[];{'6';'7'};{'8'}};
T = table(A,B)
T = 5×2 table
A B __ ____________ 11 {1×1 cell } 22 {3×1 cell } 33 {0×0 double} 44 {2×1 cell } 55 {1×1 cell }
X = ~cellfun(@isempty,T.B);
T.B(X) = cellfun(@(c)join(c,','),T.B(X))
T = 5×2 table
A B __ ____________ 11 {'1' } 22 {'2,3,4' } 33 {0×0 double} 44 {'6,7' } 55 {'8' }

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by