How to delete leading zeros in a row vector in MATLAB?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have created a function which multiplies two factorials together in MATLAB and the final result is:
0000000000000000000000000000000000000000
0000000000000005127485891768928006848657
3067757467756330382900027197934928341442
4644048874750576347830749966301579885959
6864463688769208320000000000000000000000
00
I need to delete the leading zeros, without deleting the trailing zeros. Anyone know how to do this?
Would help a lot, thanks
4 commentaires
Walter Roberson
le 26 Mar 2014
In MATLAB the only way to get a number that long would be by using the Symbolic Toolbox, which would never print leading zeros.
Réponse acceptée
Mischa Kim
le 26 Mar 2014
If it's a vector of chars, this should do:
data = regexprep(data,'^0*','')
Plus de réponses (3)
Joseph Cheng
le 26 Mar 2014
So I take it is a string array? If it is I would use something like this.
result='000000000123450101010'
mask = ones(size(result));
zero = strfind(result,'0'); %find all the zeros
mask(zero)=0; %mask off the zeros
msb = find(mask~=0); %find what numbers are not zero in the mak
result=result(msb(1):end) %first non zero number to the end of the result is the number.
0 commentaires
Shivam010
le 8 Sep 2019
d=[0 0 0 0 0 1 0 0 4 5 0 1]
g=find(d==0)
for i=1:length(g)
if g(i)==i
d(1)=[]
end
end
output:
d =
1 0 0 4 5 0 1
0 commentaires
Walter Roberson
le 25 Juil 2017
Modifié(e) : Walter Roberson
le 25 Juil 2017
S = '0000000000000000000000000000000000000000000000000000000512748589176892800684865730677574677563303829000271979349283414424644048874750576347830749966301579885959686446368876920832000000000000000000000000';
result = S(find(S ~= '0', 1, 'first') : end);
0 commentaires
Voir également
Catégories
En savoir plus sur Data Type Conversion 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!