Как я могу генерировать случайную строку в Matlab? - PullRequest
12 голосов
/ 19 января 2012

Я хочу создать строку со случайной длиной и случайными символами, только [az] [AZ] и числа.Есть что-то встроенное?

Заранее спасибо.

Ответы [ 4 ]

18 голосов
/ 19 января 2012

Нет ничего, что можно добавить к ответам @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);
6 голосов
/ 19 января 2012

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

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) )
5 голосов
/ 19 января 2012

Я начал писать это до того, как понял, что вы хотите [AZ] [az] и [0-9].Для этого хороший ответ @ Phonon.

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

length = 10;
random_string = char(floor(94*rand(1, length)) + 32);
1 голос
/ 19 августа 2013

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...