Splitting a string of numbers and '|'
1 次查看(过去 30 天)
显示 更早的评论
[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.
0 个评论
采纳的回答
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 个评论
更多回答(2 个)
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!