split a string by a set of pre-defined number of characters rather than any delimiter

5 次查看(过去 30 天)
How to
1) First split a string by the number of chacters to five substrings, where sub string 1 has 19 characters and the rest of 4 substrings have only 13 chacaters?
Please note that I do not want to split using the tab or whitespace.
2) Remove any non dnumeric values (e.g. "- Psat" in the following example) and any white spaces from the resulting substrings?
Example: if S1 is my original string
S1= ' 961.666 - Psat 1.0000 45.0971 3.6734'
I want to have the final substrings as
'961.666', '1.0000', '45.0971' and '3.6734'

采纳的回答

Stephen23
Stephen23 2019-11-8
You could do that using regular expressions:
>> S1 = ' 961.666 - Psat 1.0000 45.0971 3.6734';
>> C = regexp(S1,'(.{19})(.{13})(.{13})(.{13})(.{13})','tokens','once');
>> C = regexprep(C,'[^\d\.]+','')
C =
'961.666' '1.0000' '' '45.0971' '3.6734'
Although I suspect that you probably want something more like this:
>> C = regexp(S1,'\d+\.\d*','match')
C =
'961.666' '1.0000' '45.0971' '3.6734'

更多回答(1 个)

Walter Roberson
Walter Roberson 2019-11-8
Just index, and strtrim()

类别

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