how creat random text file
    7 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Aseel H
 le 25 Mai 2013
  
    
    
    
    
    Modifié(e) : Adam Danz
    
      
 le 16 Déc 2020
            I need to creat text file have random charecters with spesific size
I need give it size to generate random text file
for example: i need file have 4 character text = "abca"
1 commentaire
  Jan
      
      
 le 25 Mai 2013
				The question does not have a connection to the term "embedded" yet. Please clarify this.
Réponse acceptée
Plus de réponses (1)
  Adam Danz
    
      
 le 1 Nov 2019
        
      Modifié(e) : Adam Danz
    
      
 le 16 Déc 2020
  
      Another idea is to use randsample() to create random letters in the form of words separated by randomized spaces. This function allows you to set weights on the probability of each letter being drawn so you could use real letter frequencies for a laguage and then assign a frequency for spaces that controls the average word length.  
Here's a demo using relative frequencies of English letters and an average words length of 5 letters. 
% Desired avg word length (approximate)
wordLen = 5; 
% Number of characters to produce
nchar = 100;
% Relative frequencies for each letter a:z
% https://en.wikipedia.org/wiki/Letter_frequency
freq = [ 8.167 1.492 2.782 4.253 12.702 2.228 2.015 6.094 6.966 ...
    0.153 0.772 4.025 2.406 6.749 7.507 1.929 0.095 5.987 6.327 ...
    9.056 2.758 0.978 2.36 0.15 1.974 0.074]./100 .*(1-1/wordLen); 
%  Re-weight the frequencies based on word length ^^^^^^^^^^^^^^^^
%  To create a uniform frequency for each letter: freq = [1/wordLen,(1-1/wordLen)/26*ones(1,26)]; 
% The line below creates a character array of randomized lower case  
% latin letters and spaces with a typical word length of 5 letters. 
str = char(randsample([32,'a':'z'],nchar,true,[1/wordLen,freq])); 
%                     [1]           [2]          [3]  
% [1] 32 is the ascii value for [space]
% [2] 100 random characters will be generated
% [3] 1/5 to approximate a mean word length of 5 (for n letter words, use 1/n)
% Example output
disp(str)
% If desired, split the "words" into cell array of chars.
c = strsplit(str)
% Let's see if the average word length is indeed what we set 
% it to (5 in this demo)
slen = strlength(c); 
mean(slen)       % Yes, on average the words are 5 letters long
0 commentaires
Voir également
Catégories
				En savoir plus sur Characters and Strings dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



