zeros before a string using num2str

조회 수: 66 (최근 30일)
fdb
fdb 2017년 10월 19일
댓글: JG 2021년 5월 13일
I would like to pad zeros before a string. I have the following code:
a1 = 12.1521;
a2 = 2.1521;
b1 = num2str(a1,'%03.4f');
b2 = num2str(a2,'%03.4f');
The result is b1 = '12.1521';
The result is b2 = '2.1521';
I would like to obtain the result b1 = '012.1521' and b2 = '002.1521'

채택된 답변

Guillaume
Guillaume 2017년 10월 19일
편집: Guillaume 2017년 10월 19일
The problem with your format string is not the %0 which would work fine, had the next number been correct. The 3 is the problem. In both %3.4f and %03.4f it is ignored as the value is too small. It should always be more than the value after the . since it specifies the minimum total number of characters to print.
Try
num2str(a1, '%08.4f') %8 since you want 4 digits after the . + 1 digit for the . + 3 digit s before
  댓글 수: 2
JG
JG 2021년 5월 13일
This isn't working for me. Did this behavior change in a later version of MatLab?
JG
JG 2021년 5월 13일
It is working, the 0 before the 8 matters.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Adam
Adam 2017년 10월 19일
b = num2str(a,'0%3.4f')
  댓글 수: 1
fdb
fdb 2017년 10월 19일
I would like to automatically pad the number of leading zeros, depending on the formatting I specify (in this case 3 digits leading the comma, and 4 digits following the comma). It should also work if I don't know beforehand what the number a1 is.

댓글을 달려면 로그인하십시오.


KL
KL 2017년 10월 19일
편집: KL 2017년 10월 19일
Try this
A = [69.45 31.71 95.36 3.44 7.82]'
str = string(A)
newStr = pad(str,7,'left','0') %or pad(str,7,'both','0')

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by