1

我有一个 Matlab 单元格数组,A <118080 x 1 cell> 看起来像这样:

"Point 1"
"Point 2"
"Point 3"
...
"Point 1230"

这些单元是 1x9 和 1x12 尺寸之间的 char 单元。

我需要将这些字段中的数字分开以给出 118080 x 1 矩阵,例如:

1
2
3
...
1230

任何帮助将不胜感激。

最好的

Sam(Matlab 新手)

4

2 回答 2

2

没有cellfun那个用途的解决方案regexp(这里只保留数字)

A = {'Point 1'
     'Point 222'
     'Point 33333'}

B = regexp(A, '\d+', 'match');  %produce a cell array of numbers in string format

如果要将单元格转换为矩阵

B = str2double([B{:}])';        %convert to numbers
于 2013-09-20T14:11:50.980 回答
1
cellfun(@(x)(x(7:end)), A, 'UniformOutput', false)

或者如果你想要它们作为数字然后

cellfun(@(x)(str2num(x(7:end))), A)
于 2013-09-20T13:59:30.840 回答