How I could convert matrix (double) to cell array of string
245 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Maryam Hamrahi
el 31 de Mayo de 2016
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]
0 comentarios
Respuesta aceptada
Walter Roberson
el 31 de Mayo de 2016
A_cell = cellstr(str2num(A));
5 comentarios
Irina Ciortan
el 14 de Abr. de 2021
Editada: Irina Ciortan
el 14 de Abr. de 2021
This is not correct. Str2num converts strings to numeric format, but the question was the other way around. The correct and best answer should be https://se.mathworks.com/matlabcentral/answers/286544-how-i-could-convert-matrix-double-to-cell-array-of-string#answer_331847
Más respuestas (5)
Iskander
el 30 de Nov. de 2017
Editada: Iskander
el 30 de Nov. de 2017
Use undocumented function:
sprintfc('%d',A)
5 comentarios
Neil Patel
el 15 de Nov. de 2018
This functionality is basically the same as the documented function compose. Try
compose('%d',A)
Benny Abramovsky
el 7 de Ag. de 2018
This one worked for me:
strsplit(num2str(A))
3 comentarios
Syed Hussain
el 12 de Sept. de 2018
This can work for a general matrix using
strsplit(num2str(A(:)'))
and reshaping as necessary.
Karolis Poskus
el 14 de Oct. de 2020
Using one function:
compose('%g',A)
3 comentarios
Walter Roberson
el 10 de Abr. de 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
el 27 de Feb. de 2024
Wouldn't string(A) work?
3 comentarios
Rubén Vázquez Amos
el 27 de Feb. de 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.
DGM
el 27 de Feb. de 2024
Editada: DGM
el 27 de Feb. de 2024
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
el 13 de Jul. de 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 comentario
Walter Roberson
el 13 de Jul. de 2021
A = [1 , 2 ; 3 , 4]
B = cellstr(string(A))
Ver también
Categorías
Más información sobre String en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!