Как я могу создать случайную строку в Matlab?

Я хочу создать строку со случайной длиной и случайными символами, только [a-z] [A-Z] и цифры. Есть что-то построенное?

Спасибо заранее.

Ответ 1

Нельзя добавить ответы на @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);

Ответ 2

Это должно работать

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

Ответ 3

Я начал писать это, прежде чем понял, что вы хотели [A-Z] [a-z] и [0-9]. Для этого ответ @Phonon хорош.

Как альтернатива, это приведет к генерации случайных символов ASCII во всем диапазоне читаемых символов из пространства (32) в тильду (126):

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

Ответ 4

Вы пробовали встроенную функцию tempname? Например, эти две строки предоставят вам строку randon в rand_string:

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

Обратите внимание, что rand_string также будет содержать символ подчеркивания "_".