"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 commentaires

per isakson
per isakson le 18 Oct 2015
Modifié(e) : per isakson le 18 Oct 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 le 18 Oct 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 le 18 Oct 2015
That would work, too! Thanks again.

Connectez-vous pour commenter.

 Réponse acceptée

the cyclist
the cyclist le 18 Oct 2015
Modifié(e) : the cyclist le 18 Oct 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 commentaire

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Variables dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by