How to convert a vector to be a string

396 visualizaciones (últimos 30 días)
Izzat Brgli
Izzat Brgli el 28 de Mzo. de 2021
Comentada: Stephen23 el 30 de Mzo. de 2021
I'm trying to convert a vector to be a string. for example
[1,2,3,4] -> "[1,2,3,4]"
so I did write this func
function [output] = make_string(arr)
output ={};
for i=1:length(arr)
output{end+1} = strcat('[',num2str(arr{i}),']');
end
end
but unfortunately, it takes a lot of computing time and my script became really slow. So is there any other solution?
thanks a lot in advance

Respuesta aceptada

Matt J
Matt J el 28 de Mzo. de 2021
string(mat2str([1,2,3,4,5]))
ans = "[1 2 3 4 5]"

Más respuestas (1)

Ken Garrard
Ken Garrard el 28 de Mzo. de 2021
You don't need a cell array for this problem and your make_string function has errors. See doc 'cell arrays'.
If you want a comma between the values in the output string you can use the sprintf function.
s = ['[' sprintf('%g, ',A(1:end-1)) sprintf('%g]',A(end))];
This is also about 40% faster than mat2str.
  4 comentarios
Izzat Brgli
Izzat Brgli el 28 de Mzo. de 2021
Editada: Izzat Brgli el 28 de Mzo. de 2021
what do you recommend to do? because I agree with you it's inefficient
Stephen23
Stephen23 el 28 de Mzo. de 2021
"what do you recommend to do?"
Exactly like I wrote in my last comment, I reccomend that you give more details of what you are currently doing, so that someone can help you. If you do not give example code, we cannot guess exactly what you are doing.

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