English 中文(简体)
在MATLAB中编制随机字数清单
原标题:Generating a list of random words in MATLAB

我需要制作一份小册,提供大量随机“假词”清单,以遵循某些规则。

文字按字母顺序给出允许的字母,其概率用词表示。 对于这一特定申请,“可诉”一词可有2至4个,其中1个来自C组,1个来自V组,1个来自C组,1个来自V组,另一个来自V组。

当时,以下法典能够形成一字,但我可以提出50或100字。

我迄今所做的工作如下:

clc
word = [];
wlist = {};
C = [ KGBNSLMTVx_ ]; prob_C = [0.13, 0.12, 0.11, 0.10, 0.107, 0.066, 
0.09, 0.066,0.066,     0.065, 0.06];
C2 = [ KLNT ]; prob_C2 = [0.2575,0.2525,0.2475,0.2425];
V = [ AIUE ]; prob_V = [0.275,0.265,0.245,0.24];
for m = 1:randint(1,1,[2 4])
add_C2 = mod(randint(1,1,[1,100]),6);
if add_C2 == 5
    syl = [randsample(C,1,true,prob_C) randsample(V,1,true,prob_V)
    randsample(C2,1,true,prob_C2)]; 
else
    syl = [randsample(C,1,true,prob_C) randsample(V,1,true,prob_V)];
end
word = [word syl];
end
new = char(word);
wlist = {wlist{:}, new};
disp(wlist )

希望得到援助。

问题回答

下面的法典对你的问题提出了100个可接受的字句。

clc, clear
nWords = 100;

wList = {};

C =  KGBNSLMTVx_ ; 
probC = [0.13, 0.12, 0.11, 0.10, 0.107, 0.066, 0.09, 0.066,0.066, 0.065, 0.06];

C2 =  KLNT ; 
probC2 = [0.2575, 0.2525, 0.2475, 0.2425];

V =  AIUE ; 
probV = [0.275,0.265,0.245,0.24];

probAddC2 = 0.16;

for i=1:nWords
    word = [];
    nSyl = randi([2 4]);
    for j = 1:nSyl
        syl = strcat(randsample(C,1,true,probC), randsample(V,1,true,probV));
        if rand < probAddC2
           syl = strcat(syl, randsample(C2,1,true,probC2));     
        end
        word = strcat(word, syl);
    end
    wList{end+1} = word;
end
wList 

注:我不理解你为何在[1,100]年产生随机分类,采用 mo,而相比之下,是5。 共有16人,其中5人(1,100人)因此比率为0.16。





相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签