Is there a format in MATLAB to display numbers such that commas are automatically inserted into the display?
Ältere Kommentare anzeigen
I would like to display large numbers with commas separating the digits for readability purposes. For example, I would like MATLAB to display one billion as 1,000,000,000 rather than 1000000000. How can I do this?
Akzeptierte Antwort
Weitere Antworten (2)
Ted Shultz
am 13 Jun. 2018
A simple way is to add this two line function:
function numOut = addComma(numIn)
jf=java.text.DecimalFormat; % comma for thousands, three decimal places
numOut= char(jf.format(numIn)); % omit "char" if you want a string out
end
Hope that helps! --ted
Using pattern
vec = 123456789;
txt = string(vec);
pat1 = lookBehindBoundary(digitsPattern); % (?<=\d)
pat2 = asManyOfPattern(digitsPattern(3),1); % (\d{3})+
pat3 = lookAheadBoundary(pat2+lineBoundary("end")); % (?=(\d{3})+$)
pat4 = pat1+pat3; % (?<=\d)(?=(\d{3})+$)
replace(txt,pat4,",")
3 Kommentare
vec = 1234.56789;
txt = string(vec);
pat1 = lookBehindBoundary(digitsPattern); % (?<=\d)
pat2 = asManyOfPattern(digitsPattern(3),1); % (\d{3})+
pat3 = lookAheadBoundary(pat2+lineBoundary("end")); % (?=(\d{3})+$)
pat4 = pat1+pat3; % (?<=\d)(?=(\d{3})+$)
replace(txt,pat4,",")
How about this?
str = arrayfun(@(x) string(num2str(x)), (0:500:2000)');
str2 = [str;str + ".12345"]
pat1 = lookBehindBoundary(digitsPattern); % (?<=\d)
pat2 = asManyOfPattern(digitsPattern(3),1); % (\d{3})+
pat3 = lookAheadBoundary(pat2+lineBoundary("end")); % (?=(\d{3})+$)
pat4 = pat1+pat3; % (?<=\d)(?=(\d{3})+$)
isDecimal = contains(str2,".");
str3 = split(str2(isDecimal),".");
str2(isDecimal) = str3(:,1);
str4 = replace(str2,pat4,",");
str4(isDecimal) = str4(isDecimal) + "." + str3(:,2)
That seems to work much better. Note that this
str0 = arrayfun(@(x) string(num2str(x)), (0:500:2000)');
can be replaced with the much simpler and more efficient:
str1 = string(0:500:2000).';
isequal(str0,str1)
Kategorien
Mehr zu Images finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!