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

时间:2012-01-18 21:56:28

标签: matlab random

我想创建一个随机长度和随机字符的字符串,只有[a-z] [A-Z]和数字。内置了什么?

提前致谢。

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:6)

这应该有效

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) )

答案 2 :(得分:5)

在我意识到你想要[A-Z] [a-z]和[0-9]之前,我开始写这篇文章。为此,@ Phonon的答案很好。

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

length = 10;
random_string = char(floor(94*rand(1, length)) + 32);

答案 3 :(得分:1)

您是否尝试过内置函数 tempname ?例如,这两行将在rand_string中为您提供一个randon字符串:

temp_name = tempname
[temp1, rand_string] = fileparts(temp_name)

请注意,rand_string还包含下划线字符“_”。