如何在Matlab中生成随机字符串?

Clo*_*son 14 random matlab

我想创建一个随机长度和随机字符的字符串,只有[az] [AZ]和数字.内置了什么?

提前致谢.

And*_*ein 18

没有多少添加到@Phonon和@dantswain的答案,只是范围[a-Z],[A-Z]可以在更痛苦的方式产生,并且randi可以用来创建整数随机值.

 symbols = ['a':'z' 'A':'Z' '0':'9'];
 MAX_ST_LENGTH = 50;
 stLength = randi(MAX_ST_LENGTH);
 nums = randi(numel(symbols),[1 stLength]);
 st = symbols (nums);
Run Code Online (Sandbox Code Playgroud)

  • [OP没有明确要求,但对于任何关心的人:由此产生的分布将不均匀,因为存在对较短字符串的偏见. (2认同)

Pho*_*non 8

这应该工作

s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

%find number of random characters to choose from
numRands = length(s); 

%specify length of random string to generate
sLength = 50;

%generate random string
randString = s( ceil(rand(1,sLength)*numRands) )


dan*_*ain 5

在我意识到你想要[AZ] [az]和[0-9]之前我开始写这个.为此,@ Phonon的答案很好.

作为替代方案,这将在从空格(32)到波浪号(126)的所有可读字符中生成随机ASCII字符:

length = 10;
random_string = char(floor(94*rand(1, length)) + 32);
Run Code Online (Sandbox Code Playgroud)