How can I split comma-separated numbers inside a cell of a cell array?

34 次查看(过去 30 天)
Hi everyone, I have a cell array 200x1 and in each cell I have two or more comma-separated numbers. I would like to create an array in which I have, in each row, one number per cell. For example, if cell {3,1} is 23, 45, 67 I want to create an array in which cell {3,1} contains number 23, cell {3,2} contains number 45 and cell {3,3} contains number 67. Thanks in advance
  2 个评论
Walter Roberson
Walter Roberson 2016-10-15
Is your input a cell array of strings?
Is your output to be a cell array of split strings, or is your output to be a cell array of numbers of the converted strings?
Alessandro Dulja
Alessandro Dulja 2016-10-16
编辑:Alessandro Dulja 2016-10-16
Yes the input is a cell array of strings, while I want it to become a cell array of numbers.

请先登录,再进行评论。

回答(2 个)

goc3
goc3 2016-10-15
Let me know if this is what you're looking for:
% define comma-delimited data set
cell_dat = {'13,15,21'; '42,40,47,11,30'; '15,51,23'; '67,76'}
% split comma-delimited sets and convert to number format
cell_dat_split = cellfun(@(x)regexp(x,',','split'),cell_dat,'UniformOutput',0)
  2 个评论
Alessandro Dulja
Alessandro Dulja 2016-10-16
Using your code I get a cell array in which in each cell there is another cell array. The cell array inside the cell array is what I want. For example, with your code I get a cell array in which the first cell contains a cell array 1x3. The cell array 1x3 is what I want, but I don't want it to be contained in a cell of another cell array.
Walter Roberson
Walter Roberson 2016-10-16
It has to be in a cell because you have a different number entries for each.
Glen's version is splitting the strings but not converting to numeric. My version converts to numeric vectors

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2016-10-15
cell_dat = {'13,15,21'; '42,40,47,11,30'; '15,51,23'; '67,76'};
cell_dat_split = cellfun(@(S) sscanf(S, '%f,').', cell_dat, 'Uniform', 0);

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by