필터 지우기
필터 지우기

Splitting a string of numbers and '|'

조회 수: 1 (최근 30일)
Brittany
Brittany 2011년 6월 21일
[EDIT: Tue Jun 21 20:43:11 UTC 2011 - Reformat - MKF]
I cant find anything on the help for regexp that gives a way to split up numbers.
I have '1 | 2' and I need to get '1' and '2' as two separate strings.
I am getting this string from a listbox
Pos = get(handles.PositionList,'String')
Reg_num = get(handles.PositionList,'Value')
Reg_num is so that MATLAB knows which line is selected.

채택된 답변

Matt Fig
Matt Fig 2011년 6월 21일
str = '1 | 2';
S = regexp(str,'\d+','match')
Now S is a 1-by-2 cell array.
strcmp(S{1},'1')
strcmp(S{2},'2')
  댓글 수: 4
Brian
Brian 2011년 6월 24일
Jan Simon's method below works for mixed data strings.
Walter Roberson
Walter Roberson 2011년 6월 24일
See Jan's solution for that.

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

추가 답변 (2개)

Jan
Jan 2011년 6월 22일
Another solution:
strtrim(regexp('1 | 2', '\|', 'split'))

Walter Roberson
Walter Roberson 2011년 6월 21일
Pos = textscan(get(handles.PositionList,'String'), '%d', 'Delimiter', '|');
Pos{1}(get(handles.PostionList,'Value'))
Caution: If I recall correctly, I have seen cases where when you construct a listbox using '|' separated options, that the uicontrol internally converted this into a cell array of strings. It would therefore be more robust to check whether the 'String' returned was indeed ischar() or if it was iscell() instead.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by