I have a cell array like this:
c = {'[18,1]' '[18,2]' '[18,3]' '[19,4]'}
I would like to be able to convert it into something like this:
A = [18,1] [18,2] [18,3] [19,4]
Essentially what I want to do is to separate the strings in the cell arrays and turn them into individual array, can someone please help?

 채택된 답변

Stephen23
Stephen23 2017년 9월 10일
편집: Stephen23 2017년 9월 10일
Method one: concatenation and sscanf:
>> c = {'[18,1]' '[18,2]' '[18,3]' '[19,4]'};
>> reshape(sscanf([c{:}],'[%f,%f]'),2,[]).'
ans =
18 1
18 2
18 3
19 4
Method two: cellfun and cell2mat:
>> A = cell2mat(cellfun(@(s)sscanf(s,'[%f,%f]'),c,'uni',0)).'
A =
18 1
18 2
18 3
19 4
However if you are importing these strings from a file it would be easier to import the data correctly as numeric in the first place. Where do these strings come from?

댓글 수: 1

Regis Kan
Regis Kan 2017년 9월 10일
편집: Regis Kan 2017년 9월 10일
Yeah, thanks. The numbers does not originate from files, got them using shortestpath function.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

질문:

2017년 9월 10일

편집:

2017년 9월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by