get 0 in the end of a regexp function
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have a number x= 1.25690e-15 in the first step I extract only the the first part of the x which mean firstPart = 1.25690 using the program bellow, then I used the fuction regexp to split the firstPart varibale to elements. in the result of the program I expect to get : [1 2 5 6 9 0] but Unfortunatly I got only [1 2 5 6 9].
x = 1.25690e-15;
string = sprintf('%.8e', x); % Convert number to a scientific notation string with 8 decimal places of precision
stringParts = strsplit(string,'e'); % Split the string where 'e' is
firstPart = str2double(stringParts(1)); % Get the 1st part of stringParts which is the first part of standard form.
k=str2double(regexp(num2str(firstPart),'\d','match')); % slpit the firstPart variable to elements
I really appreciate any help and suggestion.
2 commentaires
Sebastiano Marinelli
le 11 Juin 2021
I think you should try to work with string untill the end since when you convert the string to a number:
firstPart = str2double(stringParts(1));
Matlab does automatically remove the not usefull 0 since 1.25690 = 1.2569
something like this should work (yep it is not very elegant, but you can base on this code to solve your problem)
x = 1.25690e-15;
%Note that I had to change .8 to .5!!!
string = sprintf('%.5e', x); % Convert number to a scientific notation string with 8 decimal places of precision
stringParts = strsplit(string,'e'); % Split the string where 'e' is
firstPart = stringParts(1); % Get the 1st part of stringParts which is the first part of standard form.
%split the number into two parts: 1.25690 -> 1 and 25690
strSplit = split((firstPart{1}),'.');
%extract the decimal
decimals = strSplit(2);
%Reshape the decimal
for i = 1:length(decimals{1})
k(i) = str2double(decimals{1}(i));
end
Sebastiano Marinelli
le 11 Juin 2021
of course you can still mantain the 8 decimal, you only have to change a bit the code
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!