MATLAB Answers

Inserting a 1000 separator

141 views (last 30 days)
Hi, I am building a table in which I need to insert numbers with a comman 1000 separator and two decimal points. For example: A=11201453.21 % should be A=1,1201,453.21 Any hint about how to do it? Best,

  3 Comments

Miroslav Balda
Miroslav Balda on 8 Feb 2013
Does the initial command have a fixed structure? How you say where to put dots? The resulting expression is not MATLAB command. If it has to be, The right side shot be enclosured in braces.
joseph Frank
joseph Frank on 8 Feb 2013
yes the resulting expression is not a matlab command. I want to generate A={'1,1201,453.21'} in matlab
Image Analyst
Image Analyst on 8 Feb 2013
My code gives close to that:
A=11201453.21
stringVersionOfA = CommaFormat(A)
cellVersionOfString = {stringVersionOfA}
In the command window:
A =
11201453.21
stringVersionOfA =
11,201,453.21
cellVersionOfString =
'11,201,453.21'
Can you explain why your second group has 4 numbers (1201) instead of 3? And is that the reason why the code I posted earlier does not meet your requirements?

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 8 Feb 2013
Here's a function I've used:
%=====================================================================
% Takes a number and inserts commas for the thousands separators.
function [commaFormattedString] = CommaFormat(value)
% Split into integer part and fractional part.
[integerPart, decimalPart]=strtok(num2str(value),'.');
% Reverse the integer-part string.
integerPart=integerPart(end:-1:1);
% Insert commas every third entry.
integerPart=[sscanf(integerPart,'%c',[3,inf])' ...
repmat(',',ceil(length(integerPart)/3),1)]';
integerPart=integerPart(:)';
% Strip off any trailing commas.
integerPart=deblank(integerPart(1:(end-1)));
% Piece the integer part and fractional part back together again.
commaFormattedString = [integerPart(end:-1:1) decimalPart];
return; % CommaFormat

  0 Comments

Sign in to comment.

More Answers (1)

Jan
Jan on 8 Feb 2013
Please take the time to search in the forum at first before posting a new question:

  0 Comments

Sign in to comment.

Tags