print numeric array as list with commas

49 Ansichten (letzte 30 Tage)
lightroman
lightroman am 27 Nov. 2017
Kommentiert: Dyuman Joshi am 25 Feb. 2024
I cant figure out how to print a = 1:10 as 1,2,3,4,5,6,7,8,9,10
  1 Kommentar
Dyuman Joshi
Dyuman Joshi am 25 Feb. 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"

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 27 Nov. 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

Weitere Antworten (1)

CM
CM am 25 Feb. 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]"

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by