Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a='0.424870551E+03-0.100113019E+03 0.470220758E+03';
- b=str2num(a);
- b =324.7575 470.2208;
- >> sscanf(a,'%E')
- ans =
- 424.8706
- -100.1130
- 470.2208
- a = '0.424870551E+03-0.100113019E+03 0.470220758E+03';
- ind = a=='-'; %// detect positions of "-" ...
- ind2 = [0 a(1:end-1)=='E'];
- ind = ind & ~ind2; %// ... but not in exponents. Thanks to Rafael Monteiro
- asep = repmat(' ',1,numel(a)+nnz(ind)); %// initiallize with spaces
- asep((1:numel(a))+cumsum(ind)) = a; %// fill in a. Leave a blank before each "-"
- b = str2num(asep);
- a =
- 0.424870551E+03-0.100113019E+03 0.470220758E+03
- asep =
- 0.424870551E+03 -0.100113019E+03 0.470220758E+03
- b =
- 424.8706 -100.1130 470.2208
- str2num('0.424870551E+03-0.100113019E+03 0.470220758E+03')
- str2num('0.424870551E+03 - 0.100113019E+03 0.470220758E+03')
- str2num('0.424870551E+03- 0.100113019E+03 0.470220758E+03')
- str2num('0.424870551E+03 -0.100113019E+03 0.470220758E+03')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement