How to delete leading zeros in a row vector in MATLAB?
조회 수: 26 (최근 30일)
이전 댓글 표시
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
Walter Roberson
2014년 3월 26일
In MATLAB the only way to get a number that long would be by using the Symbolic Toolbox, which would never print leading zeros.
채택된 답변
추가 답변 (3개)
Joseph Cheng
2014년 3월 26일
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
Shivam010
2019년 9월 8일
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
Walter Roberson
2017년 7월 25일
편집: Walter Roberson
2017년 7월 25일
S = '0000000000000000000000000000000000000000000000000000000512748589176892800684865730677574677563303829000271979349283414424644048874750576347830749966301579885959686446368876920832000000000000000000000000';
result = S(find(S ~= '0', 1, 'first') : end);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!