从具有特定概率的字母生成随机字符串(由randsrc发出)

时间:2018-12-30 17:14:26

标签: matlab

因此,我对randsrc很熟悉,可以从具有给定概率的整数随机字母创建。所以说我有这个字母

alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
prob=[0.08167 0.01492 0.02782 0.04254 0.12702 0.02228 0.02015 0.06094 0.06966 0.00153 0.00772 0.04025 0.02406 0.06749 0.07507 0.01929 0.00095 0.05987 0.06327 0.09056 0.02758 0.00978 0.02360 0.00150 0.01974 0.00074];

注意:字母是一个尺寸为1x26的单元格,概率是1x26的双精度数组。

我可以创建一个像这样的随机字符串

s = 'abcdefghijklmnopqrstuvwxyz';
%find number of random characters to choose from
numRands = length(s); 
%specify length of random string to generate
sLength = 10;
%generate random string
randString = s(ceil(rand(1,sLength)*numRands));

这种方式的问题是,我找不到解决这种可能性的方法。所以我一直想做的是:

randomString =randsrc(10,1,[alphabet; prob]);

但这会显示在控制台中:

Error using vertcat 
Dimensions of arrays being concatenated are not consistent. 
Consider converting input arrays to the same type before concatenating.

Error in test (line 8) 
randomString = randsrc(10,1,[alphabet; prob]);

如果我这样做,是

alphabet = [097:122];

randsrc将起作用。

但是我尝试过的所有操作都无法给出randsrc字符字母。我想给randsrc字符字母的原因是因为我的字母可能比第一个字母复杂得多,如下所示:

alphabet = {'aa','ab','ac'...'az','ba','bb','bc'...);

无论如何,我可以使randsrc获得字符字母而不是整数。还是我应该尝试创建自己的函数来做到这一点?

预先感谢

1 个答案:

答案 0 :(得分:3)

您可以使用# chat/routing.py from django.conf.urls import url from . import consumers websocket_urlpatterns = [ url(r'^ws/chat/(?P<room_name>[^/]+)/$', consumers.ChatConsumer), ] 生成randsrc的随机索引:

alphabet