How to delete leading zeros in a row vector in MATLAB?
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Emily
am 26 Mär. 2014
Beantwortet: Shivam010
am 8 Sep. 2019
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 Kommentare
Walter Roberson
am 26 Mär. 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.
Akzeptierte Antwort
Mischa Kim
am 26 Mär. 2014
If it's a vector of chars, this should do:
data = regexprep(data,'^0*','')
Weitere Antworten (3)
Joseph Cheng
am 26 Mär. 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 Kommentare
Shivam010
am 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 Kommentare
Walter Roberson
am 25 Jul. 2017
Bearbeitet: Walter Roberson
am 25 Jul. 2017
S = '0000000000000000000000000000000000000000000000000000000512748589176892800684865730677574677563303829000271979349283414424644048874750576347830749966301579885959686446368876920832000000000000000000000000';
result = S(find(S ~= '0', 1, 'first') : end);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!