sprintf: how to efficiently create a string of 75 numbers, separated by comma

15 visualizzazioni (ultimi 30 giorni)
I have an array which contains 75 numeric elements. I want to write these numbers as a string separated by a comma. If there were few numbers, I could use 'sprintf' as follows:
A=[1,2];
str=sprintf('%d,%d',A(1:end));
I need an efficient way to do it when there are many entries in A.

Risposta accettata

Star Strider
Star Strider il 27 Apr 2018
You can still use sprintf. You just need to create a ‘dynamic’ format string:
A = 1:5;
str = sprintf([repmat('%d,',1, numel(A)-1), '%d'], A)
str =
'1,2,3,4,5'
That will adapt for any ‘A’ vector.

Più risposte (2)

Ameer Hamza
Ameer Hamza il 27 Apr 2018
Modificato: Ameer Hamza il 27 Apr 2018
This will work.
strjoin(string(A), ',')

Stephen23
Stephen23 il 27 Apr 2018
Modificato: Stephen23 il 27 Apr 2018
"I need an efficient way to do it when there are many entries in A."
This is probably about the most efficient way:
A = 1:5;
str = sprintf(',%d',A);
str = str(2:end);
Timing comparisons for 1e4 iterations:
Elapsed time is 0.539053 seconds. % this answer.
Elapsed time is 2.54425 seconds. % Star Strider's answer.
  2 Commenti
Stephen23
Stephen23 il 27 Apr 2018
Modificato: Stephen23 il 27 Apr 2018
@Walter Roberson: you are right, sorry for the confusion. I fixed the reference.

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by