"randi(100)" Outputting Characters Instead of Integers

In line 2 below, "randi(100)" is returning characters, including black spaces, instead of integers. What code is converting "randi(100)" to return characters above line XXX, and how can I change this code to return integers?
dstr=num2str(d);
name=strcat('d',dstr,'_',randi(100));

4 comentarios

per isakson
per isakson el 18 de Oct. de 2015
Editada: per isakson el 18 de Oct. de 2015
That's the way strcat works ( str as in string)
>> strcat( 97:107 )
ans =
abcdefghijk
Is this what you want?
>> dstr = 'hello';
>> name=strcat('d',dstr,'_',num2str( randi(100) ));
>> name
name =
dhello_82
balsip
balsip el 18 de Oct. de 2015
Thanks to you as well, Per Isakson. Didn't realize that tacking on another "num2str" would work.
IMO: it's better to use sprintf
>> name = sprintf( 'd%s_%d', dstr, randi(100) )
name =
dhello_91
balsip
balsip el 18 de Oct. de 2015
That would work, too! Thanks again.

Iniciar sesión para comentar.

 Respuesta aceptada

the cyclist
the cyclist el 18 de Oct. de 2015
Editada: the cyclist el 18 de Oct. de 2015
I think you might want
name=strcat('d',dstr,'_',num2str(randi(100)));
This will convert the number to its string equivalent, rather than the ASCII value corresponding to that value (which is what I assume is happening now).

1 comentario

balsip
balsip el 18 de Oct. de 2015
Thanks for the quick reply, Cyclist. That did the trick. Very green here, so it's much appreciated.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Variables en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 18 de Oct. de 2015

Comentada:

el 18 de Oct. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by