How I could convert matrix (double) to cell array of string
Ältere Kommentare anzeigen
I have the following matrix and I want to convert it in cell array of string.
Please help me with this issue.
A=[-1; -3; -5; -5; -6; -7; -9; -3; -7; -9; -8; -9; -10]
Akzeptierte Antwort
Weitere Antworten (5)
Use undocumented function:
sprintfc('%d',A)
5 Kommentare
Kyle Pastor
am 24 Aug. 2018
This is the best implementation I have seen. Very nice!
Patrick Bernier
am 12 Okt. 2018
This needs to be higher ! Thanks !
Andrew Winter
am 25 Okt. 2018
Awesome! Thanks for this extremely concise method. As Patrick said, this needs to be higher!
Neil Patel
am 15 Nov. 2018
This functionality is basically the same as the documented function compose. Try
compose('%d',A)
Walter Roberson
am 16 Nov. 2018
Note: compose requires R2016b or later.
Benny Abramovsky
am 7 Aug. 2018
This one worked for me:
strsplit(num2str(A))
3 Kommentare
Benny Abramovsky
am 7 Aug. 2018
but it'll work only on row vector
Syed Hussain
am 12 Sep. 2018
This can work for a general matrix using
strsplit(num2str(A(:)'))
and reshaping as necessary.
Irina Ciortan
am 14 Apr. 2021
This is correct answer and worked for me.
Karolis Poskus
am 14 Okt. 2020
Using one function:
compose('%g',A)
3 Kommentare
Kyuhwa Lee
am 10 Apr. 2021
best answer
Walter Roberson
am 10 Apr. 2021
This, that you say is "best answer", is the same solution that was posted 23 months earlier at https://www.mathworks.com/matlabcentral/answers/286544-how-i-could-convert-matrix-double-to-cell-array-of-string#comment_637933
Also, at the time of the original question, compose() did not exist: the original question was May 2016, which was R2016a, but compose() was introduced as part of the string operations in R2016b.
Rubén Vázquez Amos
am 27 Feb. 2024
1 Stimme
Wouldn't string(A) work?
3 Kommentare
Rubén Vázquez Amos
am 27 Feb. 2024
I did test it and it worked, but wasn't sure about 2016 compatibility so I figured I'd put it as a tentative answer.
As far as I know, string() was introduced in R2016b, but I don't know that it's early behavior was the same as it is today. I think it's safe to say the legacy options don't matter to most readers, and they'd probably be fine with your answer. The only reason I bring it up is to explain why it hadn't been mentioned at the time the question was asked.
WinCento99
am 13 Jul. 2021
Hi all,
If we define A as a matrix
A = [1 , 2 ; 3 , 4]
And we want to create a cell string matrix, do we do the following?
B = cellstr(num2str(A))
for i = 1:length(B)
C(i,:) = strsplit(B{i,1}) ;
end
Is there a way to ignore the loop?
1 Kommentar
A = [1 , 2 ; 3 , 4]
B = cellstr(string(A))
Kategorien
Mehr zu Data Type Conversion finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!