How to split alphanumerical string without delimiter?
17 次查看(过去 30 天)
显示 更早的评论
Dear community,
I am dealing with .csv tables which contain one column of strings 'A1';'A2';...;'A100';...;'An';'B1';'B2';...;'B100';...;'Bn';'C1';'C2';...;'C100';...;'Cn';. I need to have them sorted to 'A1';'B1';'C1';'A2';'B2';'C2';...;'A100';'B100';'C100';...;'An';'Bn';'Cn'. After trying sort_nat, natsort, sortrows I tried splitting the strings which I do not know how to do without delimititer like e.g. a semicolon and sort for the numerical part. So, question: how to split strings by character without delimiter and sort by the numerical part? Thank you in adavance.
0 个评论
采纳的回答
Andrei Bobrov
2016-10-14
f = fopen('Data20161014.csv'); % Data20161014.csv - your csv file
c = textscan(f,'%s','delimiter','\n');
fclose(f);
[~,ii] = sort(str2double(regexp(c{:},'\d+','match','once')));
out = c{:}(ii);
5 个评论
Andrei Bobrov
2016-10-14
f = fopen('test_1.csv');
c = textscan(f,repmat('%s ',1,129),'delimiter',',','headerlines',1);
fclose(f);
[~,ii] = sort(str2double(regexp(c{6},'\d+','match','once')));
out = cellfun(@(x)x(ii),c(1:end-1),'un',0);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!