sprintf: how to efficiently create a string of 75 numbers, separated by comma
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Abhinav
am 27 Apr. 2018
Bearbeitet: Stephen23
am 27 Apr. 2018
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.
0 Kommentare
Akzeptierte Antwort
Star Strider
am 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.
2 Kommentare
Weitere Antworten (2)
Ameer Hamza
am 27 Apr. 2018
Bearbeitet: Ameer Hamza
am 27 Apr. 2018
This will work.
strjoin(string(A), ',')
2 Kommentare
Walter Roberson
am 27 Apr. 2018
Note: this requires R2016b or later. Also, it creates a string object output, not a character vector.
Stephen23
am 27 Apr. 2018
Bearbeitet: Stephen23
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!