Как я могу создать случайную строку в 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 также будет содержать символ подчеркивания "_".