print numeric array as list with commas

116 visualizaciones (últimos 30 días)
lightroman
lightroman el 27 de Nov. de 2017
Comentada: Dyuman Joshi el 25 de Feb. de 2024
I cant figure out how to print a = 1:10 as 1,2,3,4,5,6,7,8,9,10
  1 comentario
Dyuman Joshi
Dyuman Joshi el 25 de Feb. de 2024
(Assuming the values are integers which can be represented in double precision) With newer versions, you can use strings like this -
a = 1:10;
b = strjoin(string(a), ',')
b = "1,2,3,4,5,6,7,8,9,10"

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 27 de Nov. de 2017
regexprep( mat2str(a), {'\[', '\]', '\s+'}, {'', '', ','})
or
[sprintf('%d,', a(1:end-1)), sprintf('%d', a(end))];
or
temp = sprintf('%d,', a);
temp(end) = []; %get rid of trailing comma

Más respuestas (1)

CM
CM el 25 de Feb. de 2024
Here's one more possibillity in one line using strip:
a = 1:10;
sprintf("%s", strip(sprintf("%d,", a), ","))
% ans = "1,2,3,4,5,6,7,8,9,10"
It has the advantage that one can simultaneously add characters (like surrounding brackets) to the string formatting, control the number formatting (like decimal places), and use non-indexable input (like function calls), e.g.:
sprintf("[%s]", strip(sprintf("%.2f,", linspace(1,10,10)), ","))
% ans = "[1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00]"

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by