Borrar filtros
Borrar filtros

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

9 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Star Strider
Star Strider el 27 de Abr. de 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.

Más respuestas (2)

Ameer Hamza
Ameer Hamza el 27 de Abr. de 2018
Editada: Ameer Hamza el 27 de Abr. de 2018
This will work.
strjoin(string(A), ',')
  2 comentarios
Walter Roberson
Walter Roberson el 27 de Abr. de 2018
Note: this requires R2016b or later. Also, it creates a string object output, not a character vector.

Iniciar sesión para comentar.


Stephen23
Stephen23 el 27 de Abr. de 2018
Editada: Stephen23 el 27 de Abr. de 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 comentarios
Walter Roberson
Walter Roberson el 27 de Abr. de 2018
I didn't answer -- I commented on someone else's answer.
Stephen23
Stephen23 el 27 de Abr. de 2018
Editada: Stephen23 el 27 de Abr. de 2018
@Walter Roberson: you are right, sorry for the confusion. I fixed the reference.

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by