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

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
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
That would work, too! Thanks again.

Sign in to comment.

 Accepted Answer

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 Comment

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

Sign in to comment.

More Answers (0)

Categories

Asked:

on 18 Oct 2015

Commented:

on 18 Oct 2015

Community Treasure Hunt

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

Start Hunting!