How to delete leading zeros in a row vector in MATLAB?
17 views (last 30 days)
Show older comments
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 Comments
Walter Roberson
on 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.
Accepted Answer
Mischa Kim
on 26 Mar 2014
If it's a vector of chars, this should do:
data = regexprep(data,'^0*','')
More Answers (3)
Joseph Cheng
on 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 Comments
Shivam010
on 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 Comments
Walter Roberson
on 25 Jul 2017
Edited: Walter Roberson
on 25 Jul 2017
S = '0000000000000000000000000000000000000000000000000000000512748589176892800684865730677574677563303829000271979349283414424644048874750576347830749966301579885959686446368876920832000000000000000000000000';
result = S(find(S ~= '0', 1, 'first') : end);
0 Comments
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!