regexp usage for cellArray data which includes both characters and numbers.
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
cellArray=cellstr(cellArray)
cellArray =
'O2930202 465254.432 4066809.025'
'O2910008 499252.083 4042876.84'
'O2920014 494404.625 4047958.526'
Name Size Bytes Class Attributes
cellArray 22x1 4236 cell
%when I want to extract first column of the cellArray, I use
out1 = regexp(cellArray,'(?<=^\s*)\d*','match')
out1 = cat(1,out1{:})
out1 = sprintf('%s\n', out1{:})
%but it doesn't work because there are characters with numbers. It only works if only numbers are exist.
%what kind of code I need to write for extracting first column in terms of both characters and numbers.
0 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 10 Jul. 2013
cellArray ={'O2930202 465254.432 4066809.025';
'O2910008 499252.083 4042876.84';
'O2920014 494404.625 4047958.526'}
out1 = regexp(cellArray,'(^[a-zA-Z]*)|((?<=^\w*)\d*)','match');
out = cat(1,out1{:});
0 Kommentare
Weitere Antworten (1)
Jim Hokanson
am 10 Jul. 2013
Try not to use lookaround operators in Matlab.
If you only want the first column:
first_column_string = regexp(cellArray,'\d+','match','once')
first_column_numbers = str2double(first_column_string)
The key is using 'once' ...
If your input was a single string you could use textscan:
str = strjoin(cellArray','\n') %2013a?
or
temp = strcat(cellArray,{char(10)});
str = [temp{:}];
data = textscan(str,'O%f %f %f','MultipleDelimsAsOne',true);
first_column_numbers = data{1}
0 Kommentare
Siehe auch
Kategorien
Mehr zu Cell Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!